资源简介
JAVA时间工具类(计算法定工作日工时):计算某个日期加上几个工作日后的一个工作日期(除周末和法定节假日),计算某个日期后一天的工作日期(除周末和法定节假日),计算两个日期的真实工作日(除周末和法定节假日),判断一个日期是否是夏季时间,计算两个时间差(小时),生成一个上下班时间,因为夏季冬季不一样,一个日历是不是法定节假日,一个日历是不是法定要工作的周末,计算下一个流程开始时间=结束时间+1hour 如果不再工作时间内则从第二天早上开始。计算某月第一个工作日,计算某月最后一个工作日。

代码片段和文件信息
package cn.ffcs.demand.util;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.ResourceBundle;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.time.DateUtils;
/**
* 本类是一个工作日计算类
* 本类负责:1计算某个时间点加上相应的工作日后就会生成一个非假期的工作日期
* 2计算两个日期的具体工作日
* 3计算工作的小时数(排除双休节假日,涵盖了周末上班情况)
* @author 刘强
* @version Ver 1.0 2018-06-29 改订
*
*/
public class WorkDayPlus {
/**
* 此方法计算某个日期加上几个工作日后的一个工作日期(除周末)
* @param date(起始日期) day(要添加的工作天数)
* @return incomeDate(去除周末后的日期)
*/
public Date getIncomeDate(Date dateint days) throws NullPointerException{
Date incomeDate = date;
for(int i = 1 ; i <= days ; i++){
incomeDate = getIncomeDate(incomeDate);
}
return incomeDate;
}
/**
* 此方法计算某个日期加上几个工作日后的一个工作日期(除周末和法定节假日)
* @param date(起始日期) day(要添加的工作天数)
* @return incomeDate(去除周末后的日期)
*/
public Date getIncomeDatePlus(Date dateint days) throws NullPointerException{
Date incomeDate = date;
for(int i = 1 ; i <= days ; i++){
incomeDate = getIncomeDatePlus(incomeDate);
}
return incomeDate;
}
/**
* 此方法计算某个日期后一天的工作日期(除周末)
* @param date(起始日期)
* @return incomeDate(去除周末后的日期)
*/
private Date getIncomeDate(Date date) throws NullPointerException{
if (null == date){
throw new NullPointerException(“the date is null or empty!“);
}
//对日期的操作我们需要使用 Calendar 对象
Calendar calendar = new GregorianCalendar();
calendar.setTime(date);
//+1天
calendar.add(Calendar.DAY_OF_MONTH +1);
//判断是星期几
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
Date incomeDate = calendar.getTime();
if (dayOfWeek == 1 || dayOfWeek == 7){
//递归
return getIncomeDate(incomeDate);
}
return incomeDate;
}
/**
* 此方法计算某个日期后一天的工作日期(除周末和法定节假日)
* @param date(起始日期)
* @return incomeDate(去除周末后的日期)
*/
public Date getIncomeDatePlus(Date date) throws NullPointerException{
if (null == date){
throw new NullPointerException(“the date is null or empty!“);
}
//对日期的操作我们需要使用 Calendar 对象
Calendar calendar = new GregorianCalendar();
calendar.setTime(date);
//+1天
calendar.add(Calendar.DAY_OF_MONTH +1);
Date incomeDate = calendar.getTime();
if (isWeekend(calendar) || isHoliday(calendar)){
//递归
return getIncomeDatePlus(incomeDate);
}
return incomeDate;
}
/**
* 此方法计算两个日期的真实工作日(除周末和法定节假日)
* @param startTime(起始日期)endTime(结束时间)
* @return workdays(去除周末和法定节假日后的日期)
*/
public int getWorkDays(Date startTimeDate endTime){
return getDatesBetweenTwoDate(startTimeendTime).size();
}
/**
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-08-08 08:52 时间工具\
文件 18845 2018-08-05 16:43 时间工具\WorkDayPlus.java
文件 443 2018-07-27 15:59 时间工具\WorkDayPlusConfig.properties
相关资源
- java 毕业设计 进销存管理系统 源码
- java图片浏览器跨平台运行程序与源码
- 基于java的在线考试系统-毕业设计
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
评论
共有 条评论