70 lines
2.0 KiB
TypeScript
70 lines
2.0 KiB
TypeScript
|
|
// 获取指定月份的日期信息
|
|||
|
|
export interface DateInfo {
|
|||
|
|
date: number;
|
|||
|
|
weekDay: string;
|
|||
|
|
fullDate: string;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 获取当前月份的日期信息
|
|||
|
|
* @returns 包含当月所有日期信息的数组
|
|||
|
|
*/
|
|||
|
|
export const getCurrentMonthDates = (): DateInfo[] => {
|
|||
|
|
const today = new Date();
|
|||
|
|
const year = today.getFullYear();
|
|||
|
|
const month = today.getMonth(); // 0-11
|
|||
|
|
|
|||
|
|
// 获取当月第一天
|
|||
|
|
const firstDay = new Date(year, month, 1);
|
|||
|
|
// 获取当月最后一天
|
|||
|
|
const lastDay = new Date(year, month + 1, 0);
|
|||
|
|
// 当月总天数
|
|||
|
|
const daysInMonth = lastDay.getDate();
|
|||
|
|
|
|||
|
|
const weekdays = ['日', '一', '二', '三', '四', '五', '六'];
|
|||
|
|
const dates: DateInfo[] = [];
|
|||
|
|
|
|||
|
|
// 生成当月所有日期信息
|
|||
|
|
for (let i = 1; i <= daysInMonth; i++) {
|
|||
|
|
const date = new Date(year, month, i);
|
|||
|
|
const weekDayIndex = date.getDay(); // 0-6,0表示星期日
|
|||
|
|
dates.push({
|
|||
|
|
date: i,
|
|||
|
|
weekDay: weekdays[weekDayIndex],
|
|||
|
|
fullDate: `${year}-${String(month + 1).padStart(2, '0')}-${String(i).padStart(2, '0')}`
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return dates;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 获取指定月份的日期信息
|
|||
|
|
* @param year 年份
|
|||
|
|
* @param month 月份(0-11)
|
|||
|
|
* @returns 包含指定月份所有日期信息的数组
|
|||
|
|
*/
|
|||
|
|
export const getMonthDates = (year: number, month: number): DateInfo[] => {
|
|||
|
|
// 获取当月第一天
|
|||
|
|
const firstDay = new Date(year, month, 1);
|
|||
|
|
// 获取当月最后一天
|
|||
|
|
const lastDay = new Date(year, month + 1, 0);
|
|||
|
|
// 当月总天数
|
|||
|
|
const daysInMonth = lastDay.getDate();
|
|||
|
|
|
|||
|
|
const weekdays = ['日', '一', '二', '三', '四', '五', '六'];
|
|||
|
|
const dates: DateInfo[] = [];
|
|||
|
|
|
|||
|
|
// 生成当月所有日期信息
|
|||
|
|
for (let i = 1; i <= daysInMonth; i++) {
|
|||
|
|
const date = new Date(year, month, i);
|
|||
|
|
const weekDayIndex = date.getDay(); // 0-6,0表示星期日
|
|||
|
|
dates.push({
|
|||
|
|
date: i,
|
|||
|
|
weekDay: weekdays[weekDayIndex],
|
|||
|
|
fullDate: `${year}-${String(month + 1).padStart(2, '0')}-${String(i).padStart(2, '0')}`
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return dates;
|
|||
|
|
};
|