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

关于计算工作时间的问题

  •  
  •   Level5 · 2017-12-12 16:03:20 +08:00 · 1256 次点击
    这是一个创建于 2335 天前的主题,其中的信息可能已经有所发展或是发生改变。

    上班时间:

    周一到周五

    8:30-12:00

    13:30-18:00

    情况下

    可以设置任意不同的节假日日期时间。

    输入任意两个时间点( YYYY-MM-DD HH:mm:ss )

    计算真实的工作时间(小时数)。


    具体写了下发现被卡住了,感觉自己算法水平不够啊 T_T

    xomix
        1
    xomix  
       2017-12-12 17:04:52 +08:00   ❤️ 1
    这是逻辑分析能力不是算法吧。

    先分解需求
    1、计算两个时间范围内的工作时间,精确程度未定义。

    2、可以设置节假日,设置精度未定义。

    3、使用工作范围内的时间减去节假日时间求出工作时常。

    然后就是具体分析,先是工作时间这块,因为未定义精度,就暂时按分钟计算吧,更详细的你自己计算。

    首先将求出起止时间之间的日数,减去起始时间 1 日,减去终止时间 1 日。
    然后用工作时落点计算起始时间和终止时间的具体工作时间。

    节假日也暂定按照小时设置。
    先看起止时间是否落点到节假日范围内,如果是,稍后特殊处理。
    如果不是在节假日范围内,那么计算节假日的实际工作时常,然后用上一步求出来的工作时常减去节假日即可。

    如果起止时间落点节假日范围内,那么将节假日的起止时间就设置为具体落点时间,然后求出时常,然后一样减去即可。
    yujieyu7
        2
    yujieyu7  
       2017-12-12 17:25:11 +08:00
    这里边最麻烦的是节假日的设定吧,要是简化成周六日就好了,每年的周末之外的法定节假日都不一样,
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   766 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 22:20 · PVG 06:20 · LAX 15:20 · JFK 18:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.