关于计算工作时间的问题

2017-12-12 16:03:20 +08:00
 Level5

上班时间:

周一到周五

8:30-12:00

13:30-18:00

情况下

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

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

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


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

1351 次点击
所在节点    程序员
2 条回复
xomix
2017-12-12 17:04:52 +08:00
这是逻辑分析能力不是算法吧。

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

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

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

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

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

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

如果起止时间落点节假日范围内,那么将节假日的起止时间就设置为具体落点时间,然后求出时常,然后一样减去即可。
yujieyu7
2017-12-12 17:25:11 +08:00
这里边最麻烦的是节假日的设定吧,要是简化成周六日就好了,每年的周末之外的法定节假日都不一样,

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/414121

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX