前端判断节假日的详细代码举例
作者:zh q
因为要做一个日历控件,遇到国家法定节假日,怎么实现此功能呢?这篇文章主要给大家介绍了关于前端判断节假日的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
安装并引入
第一种: npm i chinese-days import chineseDays from 'chinese-days' 第二种: 直接浏览器引入,会跟随国务院发布更新 <script src="https://cdn.jsdelivr.net/npm/chinese-days/dist/index.min.js"></script> <script> const { isHoliday } = chineseDays console.log(isHoliday('2022-01-01')) </script>
直接调用
isWorkday 检查某个日期是否为工作日 console.log(isWorkday('2024-01-01')); // false isHoliday 检查某个日期是否为节假日 console.log(isHoliday('2024-01-01')); // true isInLieu 检查某个日期是否为调休日 getDayDetail 检查指定日期是否是工作日 // 示例用法 如果指定日期是工作日,则返回 true 和工作日名称,如果是被调休的工作日, 返回 true 和节假日详情。如果是节假日,则返回 false 和节假日详情。 // 正常工作日 周五 console.log(getDayDetail('2024-02-02')); // { "date": "2024-02-02", "work":true,"name":"Friday"} // 节假日 周末 console.log(getDayDetail('2024-02-03')); // { "date": "2024-02-03", "work":false,"name":"Saturday"} // 调休需要上班 console.log(getDayDetail('2024-02-04')); // { "date": "2024-02-04", "work":true,"name":"Spring Festival,春节,3"} // 节假日 春节 console.log(getDayDetail('2024-02-17')); // { "date": "2024-02-17", "work":false,"name":"Spring Festival,春节,3"}
获取指定日期范围内的所有节假日
getHolidaysInRange 获取指定日期范围内的所有节假日 接收起始日期和结束日期,并可选地决定是否包括周末。 如果包括周末,则函数会返回包括周末在内的所有节假日;否则,只返回工作日的节假日。 即使不包括周末,周末的节假日仍然会被返回 // 示例用法 const start = '2024-04-26'; const end = '2024-05-06'; // 获取从 2024-05-01 到 2024-05-10 的所有节假日,包括周末 const holidaysIncludingWeekends = getHolidaysInRange(start, end, true); console.log('Holidays including weekends:', holidaysIncludingWeekends.map(d => getDayDetail(d))); // 获取从 2024-05-01 到 2024-05-10 的节假日,不包括周末 const holidaysExcludingWeekends = getHolidaysInRange(start, end, false); console.log('Holidays excluding weekends:', holidaysExcludingWeekends.map(d => getDayDetail(d)));
取指定日期范围内的工作日列表
接收起始日期和结束日期,并可选地决定是否包括周末。如果包括周末,则函数会返回包括周末在内的所有工作日;否则,只返回周一到周五的工作日。 // 示例用法 const start = '2024-04-26'; const end = '2024-05-06'; // 获取从 2024-05-01 到 2024-05-10 的所有工作日,包括周末 const workdaysIncludingWeekends = getWorkdaysInRange(start, end, true); console.log('Workdays including weekends:', workdaysIncludingWeekends); // 获取从 2024-05-01 到 2024-05-10 的工作日,不包括周末 const workdaysExcludingWeekends = getWorkdaysInRange(start, end, false); console.log('Workdays excluding weekends:', workdaysExcludingWeekends);
查找工作日
查找从今天开始 未来的第 {deltaDays} 个工作日。 // 查找从今天开始 未来的第 {deltaDays} 个工作日 // 如果 deltaDays 为 0,首先检查当前日期是否为工作日。如果是,则直接返回当前日期。 // 如果当前日期不是工作日,会查找下一个工作日。 const currentWorkday = findWorkday(0); console.log(currentWorkday); // 查找从今天开始未来的第一个工作日 const nextWorkday = findWorkday(1); console.log(nextWorkday); // 查找从今天开始之前的前一个工作日 const previousWorkday = findWorkday(-1); console.log(previousWorkday); // 可以传第二个参数 查找具体日期的上下工作日 // 查找从 2024-05-18 开始,未来的第二个工作日 const secondNextWorkday = findWorkday(2, '2024-05-18'); console.log(secondNextWorkday);
获取 24 节气的日期
import { getSolarTerms } from "chinese-days"; /** 获取范围内 节气日期数组 */ const solarTerms = getSolarTerms("2024-05-01", "2024-05-20"); solarTerms.forEach(({ date, term, name }) => { console.log(`${name}: ${date}, ${term}`); }); // 立夏: 2024-05-05, the_beginning_of_summer // 小满: 2024-05-20, lesser_fullness_of_grain // 没有节气 返回 [] getSolarTerms("2024-05-21", "2024-05-25"); // return [] /* 不传 end 参数, 获取某天 节气 */ getSolarTerms("2024-05-20"); // return: [{date: '2024-05-20', term: 'lesser_fullness_of_grain', name: '小满'}]
阳历转换农历
// 2097-8-7 console.log(getLunarDate('2097-08-07')) // 2057-9-28 console.log(getLunarDate('2057-09-28')) // { // date: "2057-09-28", // lunarYear: 2057, // lunarMon: 8, // lunarDay: 30, // isLeap: false, // lunarDayCN: "三十", // lunarMonCN: "八月", // lunarYearCN: "二零五七", // yearCyl: "丁丑", // monCyl: "己酉", // dayCyl: "戊子", // zodiac: "牛" // } // 非闰月 和 闰月例子 console.log(getLunarDate('2001-04-27')) console.log(getLunarDate('2001-05-27'))
根据阳历日期区间,批量获取农历日期
console.log(getLunarDatesInRange('2001-05-21', '2001-05-26'))
农历转换阳历
当为阴历闰月的时候,会出现一个农历日期对应两个阳历日期的情况,所以返回对象形式。 console.log(getSolarDateFromLunar('2001-03-05')) // {date: '2001-03-29', leapMonthDate: undefined} console.log(getSolarDateFromLunar('2001-04-05')) // {date: '2001-04-27', leapMonthDate: '2001-05-27'}
总结
到此这篇关于前端判断节假日的文章就介绍到这了,更多相关前端判断节假日内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!