当前位置: 代码网 > it编程>编程语言>Javascript > 前端判断节假日的详细代码举例

前端判断节假日的详细代码举例

2024年09月08日 Javascript 我要评论
安装并引入第一种:npm i chinese-daysimport chinesedays from 'chinese-days'第二种:直接浏览器引入,会跟随国务院发布更新<script sr

安装并引入 

第一种:
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'}

总结

到此这篇关于前端判断节假日的文章就介绍到这了,更多相关前端判断节假日内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com