资源简介
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开发走迷宫可视化源码程序
- Floyd算法-java实现
- java面向对象程序设计答案
- java课设-保存计算过程的计算器代码
- Java实验报告(房屋销售管理信息系统
- 商场销售管理系统 java netbeans
- 基于JAVA的安全的通讯软件源代码
- Java 音频wav等播放 循环 停止
- 网上排课系统 附带数据库可以运行
- 北大青鸟accp5.0java第六章理论加上机作
- 网络画板java源代码
- Apriori算法实现及实验报告
- Java 五子棋游戏毕业论文
- Java Cryptography Extension (JCE) 无限强度
- 原生JAVA读写PLC
- JAVA面向对象思维导图.xmind
- mysql -connection-java-5.0.8-bin.jar
- java理发店管理系统
- 用java写的一个简单的学生成绩管理系
- java 网上在线报名系统
- java试衣间
- 利用阿里钉钉审批功能实现jenkins自动
- java连接mysql5.5的jar包
- Hill密码java实现
- javaGUI开发的小程序
- java推箱子小游戏源码完整版
- java读取raw格式的图片并显示
- 传教士与野人问题Java实现
- java 根据文件名实现文件搜索
- 基于socket的用户注册,登录,文件上
评论
共有 条评论