V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
CookCoder
V2EX  ›  程序员

自己用来判断国内法定节假日的 js 库,分享给各位

  •  1
     
  •   CookCoder · 2022-04-21 16:38:22 +08:00 · 2415 次点击
    这是一个创建于 707 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://www.npmjs.com/package/festival_chn

    https://github.com/vueadmin/festival_chn

    最新更新记录

    目前仅支持 2022 年的日期判断

    2.2.1

    • 新增法定节假日判断,调休日判断
    • 法定节假日新增 isSwap 字段,用于判断该假期是否有调休日
    • 法定节假日新增 swapDate 字段,如果 isSwaptrue,则该字段展示本法定节假日的调休日数组
    • 新增 type 字段 1/正常日,2/法定节假日,3/调休日

    NPM

    npm i festival_chn
    

    USE

    import festival from "festival_chn";
    

    PARMAES

    date 需要符合 "yyyy-mm-dd" 格式
    const date = "2022-01-01"
    const res = festival(date);
    

    RETURN

    字段名称 字段类型 返回状态 说明
    name String 必返 节假日名称 /调休 /正常
    type Number 必返 1/正常 2/节假日 3/调休日
    isSwap Boolean 法定节假日必返 true/有调休 false/无调休
    swapDate Array 法定节假日有调休日必返 调休日组成的数组
    {
        name: '春节',
        type: 2,
        isSwap: true,
        swapDate: [
            "2022-01-29"
            "2022-01-30"
        ]
    }
    
    18 条回复    2022-04-22 14:20:22 +08:00
    CookCoder
        1
    CookCoder  
    OP
       2022-04-21 16:39:45 +08:00
    草率的写了一下,有问题和建议请尽情的提出来吧

    也欢迎 PR 和 START
    villivateur
        2
    villivateur  
       2022-04-21 16:41:37 +08:00 via Android
    这……是不是只要一个字典就好了?
    CookCoder
        3
    CookCoder  
    OP
       2022-04-21 16:42:20 +08:00
    我是根据自己项目的需求,进行封装的,很简单,也没有什么黑科技优化,朴实的很

    目前只支持 2022 年的判断

    其实准备支持任意年份的,这几天尽力想办法优化一下
    faceair
        4
    faceair  
       2022-04-21 16:43:48 +08:00
    任意年份支持不了吧,都是国务院每年定的调休方案...
    FlintyLemming
        5
    FlintyLemming  
       2022-04-21 16:43:57 +08:00
    我之前也糊过一个,但是一想这玩意每年还得等国务院更新然后自己再手动更新,后来就不了了之了
    https://github.com/FlintyLemming/isWeekendHolidayAPI
    CookCoder
        6
    CookCoder  
    OP
       2022-04-21 16:44:36 +08:00
    @villivateur 一点没毛病,主要是想简单的省心一下

    下一步打算输入开始和结束日期,然后返回全部的节假日信息列表
    koolob
        7
    koolob  
       2022-04-21 16:45:19 +08:00
    每年根据假日办公告手动更新么?
    CookCoder
        8
    CookCoder  
    OP
       2022-04-21 16:47:02 +08:00
    @faceair 是的,所有每年都要更新一次,但其实还好,打算弄一个自动化引入的,然后每年 PR 进去一个 20XX.js 的文件就好了。


    @FlintyLemming 我不打算搞接口版本的,因为这个库我自己和团队肯定会经常使用,即便是内部,每年也要更新一次假期信息,主要是这个调休日比较烦,计算请假时间什么的,需要过滤掉。
    CookCoder
        9
    CookCoder  
    OP
       2022-04-21 16:48:06 +08:00
    @koolob 是的,下一年就是 2.3.X 版本了,手动更新,之前内部使用的时候也是我自己手动更新,这个其实不复杂,但是不弄一个吧,搞一些需求的时候很烦。
    liuidetmks
        10
    liuidetmks  
       2022-04-21 19:34:43 +08:00 via iPhone
    这都要弄一个库吗?
    linglin0924
        11
    linglin0924  
       2022-04-21 19:52:47 +08:00
    不错,有用
    yukinotech
        12
    yukinotech  
       2022-04-21 20:19:40 +08:00
    @CookCoder 挺好的,每年更新一次,明年的留个 pr 机会给我(手动滑稽)
    ColinZeb
        13
    ColinZeb  
       2022-04-21 21:13:41 +08:00
    每年的调休规则不是都一样吗,可以预测一下 89 不离 10
    CookCoder
        14
    CookCoder  
    OP
       2022-04-22 09:11:24 +08:00
    @liuidetmks 因为这样比较统一,主要我们公司内部也使用,起码先方便自己和同事
    CookCoder
        15
    CookCoder  
    OP
       2022-04-22 09:11:47 +08:00
    @yukinotech 没问题,不介意可以把以前的时间也 pr 一下
    CookCoder
        16
    CookCoder  
    OP
       2022-04-22 09:12:32 +08:00
    @ColinZeb 每年的调休规则和具体放假日期是不一样的,可以参考一下最近几年的
    vevlins
        17
    vevlins  
       2022-04-22 10:11:05 +08:00
    有需求就有价值,点赞
    CokeMine
        18
    CokeMine  
       2022-04-22 14:20:22 +08:00 via Android
    法定节假日好像不会返回 type 2
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1553 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 17:12 · PVG 01:12 · LAX 10:12 · JFK 13:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.