[需求总结] 关于 Java 判断是否为工作日、法定节假日
生活随笔
收集整理的這篇文章主要介紹了
[需求总结] 关于 Java 判断是否为工作日、法定节假日
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
應(yīng)用場(chǎng)景
假設(shè)我有一個(gè)任務(wù),任務(wù)一共需要 10 個(gè)小時(shí)就可以完成。任務(wù)開(kāi)始時(shí)間是 2018-3-28,結(jié)束時(shí)間是 2018-4-8。
我們通過(guò)日歷可以知道,3-31 和 4-1 是周末,然后 4月份的 5、6、7號(hào)是清明節(jié)。所以 12 天之內(nèi),
有 5 天是放假的。意思就是說(shuō),我們?cè)?7 天之內(nèi),完成 10 個(gè)小時(shí)的工作量。
所以,我們需要解決的是:在任務(wù)期間內(nèi),除掉 國(guó)家法定假期 和 周末 。 (下文將稱(chēng)為特殊時(shí)間)
方案
- 獲取任務(wù)的時(shí)間段,判斷里面是否有節(jié)假日或者周末。(這個(gè)需要通過(guò)工具類(lèi)來(lái)計(jì)算)
- 現(xiàn)在數(shù)據(jù)庫(kù)存好今年的國(guó)家法定日及周末。然后拿到任務(wù)時(shí)間段。通過(guò)比對(duì)時(shí)間來(lái)判斷是否有特殊時(shí)間及數(shù)目,最后減去即可。
選擇及實(shí)現(xiàn)
我選擇方案二。方案一效率比較低,計(jì)算量比較大。方案二比較容易實(shí)現(xiàn)。
偽思路及步驟
考慮問(wèn)題
數(shù)據(jù)庫(kù)設(shè)計(jì)
| id | 索引 | Integer |
| create_by | 創(chuàng)建時(shí)間 | Date |
| create_date | 更新時(shí)間 | Date |
| del_flag | 是否刪除 | bool |
| remarks | 備注 | varchar(100) |
| update_by | 更新人 | Date |
| record_time? | 記錄時(shí)間 | Date |
| special_day | 特殊時(shí)間 | Date |
day_type | 時(shí)間類(lèi)型(法定日,周末,法定日+周末) | String[] |
總結(jié)
以上是生活随笔為你收集整理的[需求总结] 关于 Java 判断是否为工作日、法定节假日的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 微信服务号模板消息推送
- 下一篇: Javascript 库