java 根据开始日期 ,需要的工作日天数 ,计算工作截止日期,并返回截止日期
我也参考过其他的方案,
提供一个代码简洁的方案,具体性能没有测试过,
经过测试,跨年也可以正确计算截止日期;
/*** 根据开始日期 ,需要的工作日天数 ,计算工作截止日期,并返回截止日期* @param startDate 开始日期* @param workDay 工作日天数(周一到周五)* @return Date类型* @createTime 2014-2-14* @author Sunqinbo*/public static Date getWorkDay(Date startDate, int workDay, int hour, int second, int minute) {Calendar c1 = Calendar.getInstance();c1.setTime(startDate);for (int i = 0; i < workDay; i++) {// 判断当天是否为周末,如果是周末加1if (Calendar.SATURDAY == c1.get(Calendar.SATURDAY) || Calendar.SUNDAY == c1.get(Calendar.SUNDAY)) {workDay = workDay + 1;c1.set(Calendar.DATE, c1.get(Calendar.DATE) + 1);continue;}c1.set(Calendar.DATE, c1.get(Calendar.DATE) + 1);// 当天数加1 判断是否为周末 如果是周末加1if (Calendar.SATURDAY == c1.get(Calendar.SATURDAY) || Calendar.SUNDAY == c1.get(Calendar.SUNDAY)) {workDay = workDay + 1;c1.set(Calendar.DATE, c1.get(Calendar.DATE) + 1);continue;}}
// c1.set(Calendar.HOUR_OF_DAY, hour);
// c1.set(Calendar.SECOND, second);
// c1.set(Calendar.MINUTE, minute);
// SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// System.out.println(df.format(c1.getTime()) + " " + getWeekOfDate(c1.getTime()));return c1.getTime();}/*** 根据日期,获取星期几* @param dt* @return String类型* @createTime 2014-2-14* @author Sunqinbo*/public static String getWeekOfDate(Date dt) {String[] weekDays = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };Calendar cal = Calendar.getInstance();cal.setTime(dt);int w = cal.get(Calendar.DAY_OF_WEEK) - 1;if (w < 0) w = 0;return weekDays[w];}
测试 夸年日期
public static void main(String[] args) throws ParseException {String source = "2014-12-30 10:45:06";// 开始时间int workDay = 10;// 工作日SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");df.parse(source);for (int i = 0; i < workDay; i++) {System.out.print("工作日:" + i + "天, ");getWorkDay(df.parse(source), i);}}
输出结果
工作日:0天, 2014-12-30 10:45:06 星期二
工作日:1天, 2014-12-31 10:45:06 星期三
工作日:2天, 2015-01-01 10:45:06 星期四
工作日:3天, 2015-01-02 10:45:06 星期五
工作日:4天, 2015-01-05 10:45:06 星期一
工作日:5天, 2015-01-06 10:45:06 星期二
工作日:6天, 2015-01-07 10:45:06 星期三
工作日:7天, 2015-01-08 10:45:06 星期四
工作日:8天, 2015-01-09 10:45:06 星期五
工作日:9天, 2015-01-12 10:45:06 星期一
java 根据开始日期 ,需要的工作日天数 ,计算工作截止日期,并返回截止日期相关推荐
- java 两个日期之间相差的天数计算
项目开发过程中经常遇到这类需求,计算两个日期之间的差,今天我系统总结一下这个技术点: 1.两个日期之间相差的天数,日期为单位(比如相差两秒,可能就相差一天,1.12:23:59:59和13:01:00 ...
- oracle 节假日天数,强大的PLSQL - 计算两个日期之间的工作日天数-除去(周末和公共假日...
用php写了一个函数,实现的功能是 计算两个日期之间的工作日天数-除去(周末和公共假日)写了 300多行的代码, 实现公共假日从文件中读取, 或者从数据库提取, 然后传入两个日期,就能返回想要的结果 ...
- Java实现一段时间内的工作日天数(除去节假日、双休日)
Java实现一段时间内的工作日天数(除去节假日.双休日) 通过调用工具类getworkDays()方法传入时间区间返回该区间内的工作日天数(除去节假日.双休日) 注:工具类中的SPECIAL_WORK ...
- SQL计算两个日期之间的工作日天数,去除法定节假日和周末
项目要求:需要计算两个日期之间的工作日天数,包含元旦.五一.十一等法定假日. 网上查询很多SQL函数,最终发现都不太理想,例如国庆放假可能会调休,周末也要上班.所以唯一的解决方案是建立一张工作日时间表 ...
- java判断一个日期是否为工作日
java判断一个日期是否为工作日 /*** @Author :feiyang* @Date :Created in 7:47 PM 2019/12/3*/ public class LocalDate ...
- oracle日期相减工作日_Oracle 计算两个日期间隔的天数、月数和年数
在Oracle中计算两个日期间隔的天数.月数和年数: 一.天数: 在Oracle中,两个日期直接相减,便可以得到天数: select to_date('08/06/2015','mm/dd/yyyy' ...
- java计算任意2个日期内的工作日_计算任意2个日期内的工作日(摘抄)
思路不错,对时间的操作挺全面,参考一下.代码如下: package test; import java.text.SimpleDateFormat; import java.util.Calendar ...
- 计算两个日期之间的工作日天数
计算两个工作日之间的天数 : 利用循环遍历开始时间和结束时间之间的天数,工作日则累计,非工作日跳过,不过如果开始时间和结束时间之间很长,效率可能不高, import java.text.DateFor ...
- Java获取两个日期之间的工作日天数
参数:开始日期,结束日期 String 返回值:天数 int @SuppressWarnings("deprecation") public int getDutyDays(Str ...
- 工作日查询(一段日期内的工作日天数查询)
/* --马万前 --2010-1-15 --查询工作日内的工作天数 */ Create Function dbo.f_WorkDay ( @date_Begin datetime, @date_ ...
最新文章
- pcl中PrincipalCurvatures 和 Normal中的curvature的区别
- 在eclipse中安装与配置maven环境
- mysql二阶段提交有什么问题_MySQL的事务两阶段提交的技术有什么意义?
- 无法打开caffe.pb.h, no such file or directory错误
- 小汤学编程之JAVA基础day09——常用类(一):比较器、内部类和包装类
- HTML初识HTML
- Linux 0.11内核分析01:概述
- Anaconda prompt下常用命令
- 文档服务器 件排名,服务器排名
- 达拉草201771010105《面向对象程序设计(java)》第十周学习总结
- 【二分答案】【NOIP模拟10-21】的士碰撞
- Ros简单程序编写及使用类Hello World
- 在ubuntu12.04下编译android4.1.2添加JNI层出现问题
- 兼容ie10以下版本的placeholder属性
- 快递如何筹备双十一:德邦快递另类营销
- 【maven】maven基础知识总结
- windows下Redis多实例部署
- python爬取网易云音乐_手把手教你用Python网络爬虫获取网易云音乐歌曲
- centos 缩减逻辑卷
- 【游戏后端】游戏服务器端开发的一些建议(转载)
热门文章
- 小型气象站种类有哪些
- js reduce 累加数组里对象某个属性的和 NaN
- 重磅!阿里版本【ChatGPT】开放测评!
- MySQL查看数据库状态命令详解
- css自动换行,css代码
- android10桌面布局好看,让你的Android手机界面布局更好看
- boox android 4.4,纷极阅读app
- java.sql.SQLSyntaxErrorException问题常见解决方案:比如Table xxx doesn‘t exist;Unknown column ‘xxx‘ in ‘where...
- AI写作机器人-ai文章生成器在线
- 如何修改项目中Git远程仓库地址?