封装一个函数,输入当年放假的日期信息,输出当天距离放假的天数和已放假过的天数(假期取春节,清明节,五一,端午节,中秋节,国庆节,元旦),如,距离国庆节还有4天,中秋节已过10天js
时间: 2024-04-16 20:27:23 浏览: 131
一段js小代码,计算距春节还有多少天.docx
可以封装一个函数来实现这个功能。以下是一个使用 JavaScript 实现的示例代码:
```javascript
function getHolidayDays(date) {
const holidays = [
{ name: '春节', month: 1, day: 1 },
{ name: '清明节', month: 4, day: 4 },
{ name: '五一', month: 5, day: 1 },
{ name: '端午节', month: 6, day: 14 },
{ name: '中秋节', month: 9, day: 21 },
{ name: '国庆节', month: 10, day: 1 },
{ name: '元旦', month: 12, day: 31 }
];
let daysToHoliday = 0;
let daysPastHoliday = 0;
for (const holiday of holidays) {
const holidayDate = new Date(date.getFullYear(), holiday.month - 1, holiday.day);
if (holidayDate > date) {
const timeDiff = holidayDate.getTime() - date.getTime();
const daysDiff = Math.ceil(timeDiff / (1000 * 3600 * 24));
daysToHoliday = daysDiff;
break;
} else {
const timeDiff = date.getTime() - holidayDate.getTime();
const daysDiff = Math.floor(timeDiff / (1000 * 3600 * 24));
daysPastHoliday = daysDiff;
}
}
return { daysToHoliday, daysPastHoliday };
}
// 示例用法
const today = new Date();
const { daysToHoliday, daysPastHoliday } = getHolidayDays(today);
console.log(`距离放假还有${daysToHoliday}天,已放假过${daysPastHoliday}天`);
```
这个函数首先定义了一个包含假期信息的数组 `holidays`,其中每个假期都有名称、月份和日期。然后,函数会遍历这个数组,找到距离当前日期最近的假期。如果找到了还未到的假期,则计算距离这个假期的天数;如果找到了已经过去的假期,则计算离这个假期过去的天数。最后,函数会返回一个包含距离放假天数和已放假天数的对象。
请注意,这个函数假设传入的日期是有效的,且不包含时间信息(只有日期)。你可以根据需要进行适当的调整。
阅读全文