[需求总结] 关于 Java 判断是否为工作日、法定节假日
应用场景
假设我有一个任务,任务一共需要 10 个小时就可以完成。任务开始时间是 2018-3-28,结束时间是 2018-4-8。
我们通过日历可以知道,3-31 和 4-1 是周末,然后 4月份的 5、6、7号是清明节。所以 12 天之内,
有 5 天是放假的。意思就是说,我们在 7 天之内,完成 10 个小时的工作量。
所以,我们需要解决的是:在任务期间内,除掉 国家法定假期 和 周末 。 (下文将称为特殊时间)
方案
- 获取任务的时间段,判断里面是否有节假日或者周末。(这个需要通过工具类来计算)
- 现在数据库存好今年的国家法定日及周末。然后拿到任务时间段。通过比对时间来判断是否有特殊时间及数目,最后减去即可。
选择及实现
我选择方案二。方案一效率比较低,计算量比较大。方案二比较容易实现。
伪思路及步骤
- 定时任务,将今年的特殊事件都存进来。有序,方便查询。
- 根据任务时间段来作为查询条件,查询的数量则是特殊时间的数量。
- 用 任务总时间 - 特殊时间天数 则 有效的工作时间。
考虑问题
- 任务与特殊时间交错的情况只有三种:开始时间在特殊日期,结束时间不在;开始时间不在特殊时间,结束日期在;开始时间和结束时间之间有特殊时间。(开始时间和结束时间都在特殊时间的话,任务被调到延期状态)
- 我们在计算工作趋势的时候,需要注意任务的状态(是在延期还是开发还是调研?)
- 特殊时间和周末是否重叠
数据库设计
字段 | 备注 | 数据类型 |
---|---|---|
id | 索引 | Integer |
create_by | 创建时间 | Date |
create_date | 更新时间 | Date |
del_flag | 是否删除 | bool |
remarks | 备注 | varchar(100) |
update_by | 更新人 | Date |
record_time | 记录时间 | Date |
special_day | 特殊时间 | Date |
day_type |
时间类型(法定日,周末,法定日+周末) | String[] |
[需求总结] 关于 Java 判断是否为工作日、法定节假日相关推荐
- JAVA判断当前时间是否为节假日、周末、工作日,简单有效!
JAVA判断当前时间是否为节假日.周末.工作日 需求 有这么个需求,需要判断传的这个日期是否为节假日,周末,工作日,然后做剩下的操作. 话不多说,上代码 1.首先需要拿到节假日api 节假日API地址 ...
- 判断日期是否为法定节假日的API接口与示例函数
判断日期是否为法定节假日的API接口与示例函数 需要判定某日期是否为法定节假日,由于国家的节假日每年都在变动,所以使用接口判定是必要的.可惜的是,这样的接口并不多,在此汇总三个: http://too ...
- php根据当前日期判断法定节假日_判断日期是否为法定节假日的API接口与示例函数...
需要判定某日期是否为法定节假日,由于国家的节假日每年都在变动,所以使用接口判定是必要的.可惜的是,这样的接口并不多,在此汇总三个: 前两个看起来是个人的,最后一个是聚合数据的万年历接口. 请注意,本文 ...
- php根据当前日期判断法定节假日_PHP 判断当前日期是否是法定节假日或者休息日 (原)...
//判断日期是不是节假日或者双休日接口 @param time [时间(时间戳或者Y-m-d都可)] public function get_type_by_date(){ $t = $_GET['t ...
- Python判断指定日期是不是法定节假日
判断一个日期是否为工作日.节假日,有一个现成的库函数:chinesecalendar chinesecalendar · PyPI 1.安装 pip3 install chinesecalendar ...
- 节假日读取接口_判断日期是否为法定节假日的API接口与示例函数
需要判定某日期是否为法定节假日,由于国家的节假日每年都在变动,所以使用接口判定是必要的.可惜的是,这样的接口并不多,在此汇总三个: 前两个看起来是个人的,最后一个是聚合数据的万年历接口. 在我的小项目 ...
- java方法 判断今天是工作日/周末/节假日
1.工具类里静态方法 public static String request( String httpArg) {String httpUrl="http://tool.bitefu.ne ...
- java 判断当前时间是否为节假日_最近公司招人,研发组商量了下,暂时定下这么多java面试题!...
一.List相关面试题 List是一个集合接口,分为AarrayList和LinkedList两个实现方式 ArrayList:底层实现就是数组,且ArrayList实现了RandomAccess,表 ...
- java 判断当前时间是否为节假日_浅谈Java8日期时间处理
各位小伙伴们,我们又见面了,今天峰哥跟大家分享一下java8的全新日期时间处理API.在Java8之前,我们使用的日期时间是: java.util.Datejava.util.Calendar jav ...
最新文章
- nodejs安装及npm模块插件安装路径配置
- 代码片段--批量生产库以及可执行文件的依赖关系
- 高级经济师计算机水平考试,【2017上海高级经济师评审职称外语、计算机成绩不再为前置条件】- 环球网校...
- Javascript - Jquery - 事件
- Linux新手入门:Unable to locate package错误解决办法
- (14)Verilog数据类型-基本语法(二)(第3天)
- 07-R语言jiebaR包的分词学习
- boot sprint 项目结构_完美起航-【知识】SpringBoot项目结构目录
- 使用ASP.NET Core、JavaScript和Angular防止CSRF攻击
- Mediator(中介者)-对象行为型模式
- iOS | 地图定位
- Swift语言中的@available 和 #available
- 电脑垃圾太多?这几个清理电脑的软件来看看吗?
- 我所经历的Android面试|掘金技术征文
- BAT文件批量创建目录或docx, xlsx, txt文件
- LeetCode 325. Maximum Size Subarray Sum Equals k
- 华为p40支持鸿蒙,华为P40来袭,支持鸿蒙系统,花粉直呼惊喜
- 第五章 光学系统中成像光束的选择
- 历史角度看唐朝四期(初、盛、中、晚)
- 面试经历:百度-数据分析与数据挖掘(实习生)