V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
damao2250
V2EX  ›  JavaScript

如题:求教 JavaScript 中如何实现根据某个日期(T)计算 T+5 个工作日,其中考虑节假日、调休日等因素

  •  
  •   damao2250 · 2020-07-28 09:31:23 +08:00 · 3506 次点击
    这是一个创建于 1339 天前的主题,其中的信息可能已经有所发展或是发生改变。
    26 条回复    2020-07-28 17:41:29 +08:00
    diegozhu
        1
    diegozhu  
       2020-07-28 09:35:00 +08:00
    调假这种国务院每年初才通知地东西你咋通过算法算?
    woodensail
        2
    woodensail  
       2020-07-28 09:38:03 +08:00
    第三方 api 了解一下,建议选个大点的厂商。
    la2la
        3
    la2la  
       2020-07-28 09:39:07 +08:00
    先不考虑节假日,调休日,算出来后。然后再过滤节假日,节假日提前硬编码
    zsdroid
        4
    zsdroid  
       2020-07-28 09:42:15 +08:00
    之前做过这方面的东西,节假日可以算出来,但是调休日算不出来。
    zliea
        5
    zliea  
       2020-07-28 09:43:56 +08:00
    每年更新一下配置?
    qiayue
        6
    qiayue  
       2020-07-28 09:46:10 +08:00
    只能每年更新配置
    qwerthhusn
        7
    qwerthhusn  
       2020-07-28 09:47:56 +08:00   ❤️ 1
    预置两个列表,一个是工作日需要调休的日期,另一个是周末需要上班的日期

    判断的时候,如果是工作日去看第一个列表,如果是周末看第二个列表

    这两个列表可以在库里存着,每年 12 月国务院会发布次年的(发布之后还有可能会改动,像今年五一还是去年五一,本来三天,后面改成了 5 天)
    KuroNekoFan
        8
    KuroNekoFan  
       2020-07-28 10:01:00 +08:00
    crontab 定时查国务院公告吧😛
    nightwitch
        9
    nightwitch  
       2020-07-28 10:15:04 +08:00
    每年初手工输入呗,节假日很好计算,调休是不可能的。
    miniwade514
        10
    miniwade514  
       2020-07-28 10:18:22 +08:00
    你需要的是一个排班系统。节假日、调休日,基本都是需要人工录入的。
    himesens
        11
    himesens  
       2020-07-28 10:25:51 +08:00
    新建一个数组,包含当年所有节假日、双休日日期。
    因为逻辑简单,写起来还挺快的,每年花 20 分钟更新下就行了。
    himesens
        12
    himesens  
       2020-07-28 10:28:35 +08:00
    调休日的话肯定存数据库了,和公休日独立
    redtea
        13
    redtea  
       2020-07-28 10:32:15 +08:00 via iPhone
    让后端提供接口
    nobody123
        14
    nobody123  
       2020-07-28 11:51:49 +08:00
    我换了一个思路,获取员工连续电脑操作时间。这就是上班时间。。
    murmur
        15
    murmur  
       2020-07-28 11:53:26 +08:00
    节假日是要维护的,按照以往都是一年维护一次就可以,但是今年特殊碰到疫情什么节假日都可能变
    sampeng
        16
    sampeng  
       2020-07-28 12:30:55 +08:00 via iPhone
    现在写代码都直接面向论坛伸手要了?
    Felldeadbird
        17
    Felldeadbird  
       2020-07-28 12:54:01 +08:00
    调休日无法解决。你必须的写一个动态配置加载这部分。
    Jooooooooo
        18
    Jooooooooo  
       2020-07-28 12:56:19 +08:00
    每年年底捞一下国务院的放假安排
    hotsun168
        19
    hotsun168  
       2020-07-28 13:10:02 +08:00
    个人的做法是先把周六周日和已公布的所有法定假日落表,查询时框定范围查这个表,根据行数减去相应天数。
    DoodleSit
        20
    DoodleSit  
       2020-07-28 13:36:40 +08:00
    万年历天干地支是怎么做的,就是在数据库存上每天的数据,一年也就 365
    no1xsyzy
        21
    no1xsyzy  
       2020-07-28 13:42:23 +08:00
    年底也不行
    你们怕是忘记去年临时改了五一调休
    waiaan
        22
    waiaan  
       2020-07-28 13:52:45 +08:00
    扔给后端。
    ghylcg
        23
    ghylcg  
       2020-07-28 13:52:51 +08:00
    额,做过相关日历组件,前端计算的是周一周五上班,周末休息,然后节假日调休等都是后台获取的,再修改对应日期的展示
    damao2250
        24
    damao2250  
    OP
       2020-07-28 16:25:04 +08:00
    小弟不才,感谢各位大佬给的建议和思路❀,Thanks
    yaphets666
        25
    yaphets666  
       2020-07-28 17:29:29 +08:00
    加一个功能 自己设置 输入啥的
    xuanbg
        26
    xuanbg  
       2020-07-28 17:41:29 +08:00
    这个要后端做一个表,然后前端调接口来获取某一天是否工作日,或者 x 个工作日后是哪一天。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   943 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 21:30 · PVG 05:30 · LAX 14:30 · JFK 17:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.