我也参考过其他的方案,

提供一个代码简洁的方案,具体性能没有测试过,

经过测试,跨年也可以正确计算截止日期;

        /*** 根据开始日期 ,需要的工作日天数 ,计算工作截止日期,并返回截止日期* @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 根据开始日期 ,需要的工作日天数 ,计算工作截止日期,并返回截止日期相关推荐

  1. java 两个日期之间相差的天数计算

    项目开发过程中经常遇到这类需求,计算两个日期之间的差,今天我系统总结一下这个技术点: 1.两个日期之间相差的天数,日期为单位(比如相差两秒,可能就相差一天,1.12:23:59:59和13:01:00 ...

  2. oracle 节假日天数,强大的PLSQL - 计算两个日期之间的工作日天数-除去(周末和公共假日...

    用php写了一个函数,实现的功能是 计算两个日期之间的工作日天数-除去(周末和公共假日)写了 300多行的代码,  实现公共假日从文件中读取, 或者从数据库提取, 然后传入两个日期,就能返回想要的结果 ...

  3. Java实现一段时间内的工作日天数(除去节假日、双休日)

    Java实现一段时间内的工作日天数(除去节假日.双休日) 通过调用工具类getworkDays()方法传入时间区间返回该区间内的工作日天数(除去节假日.双休日) 注:工具类中的SPECIAL_WORK ...

  4. SQL计算两个日期之间的工作日天数,去除法定节假日和周末

    项目要求:需要计算两个日期之间的工作日天数,包含元旦.五一.十一等法定假日. 网上查询很多SQL函数,最终发现都不太理想,例如国庆放假可能会调休,周末也要上班.所以唯一的解决方案是建立一张工作日时间表 ...

  5. java判断一个日期是否为工作日

    java判断一个日期是否为工作日 /*** @Author :feiyang* @Date :Created in 7:47 PM 2019/12/3*/ public class LocalDate ...

  6. oracle日期相减工作日_Oracle 计算两个日期间隔的天数、月数和年数

    在Oracle中计算两个日期间隔的天数.月数和年数: 一.天数: 在Oracle中,两个日期直接相减,便可以得到天数: select to_date('08/06/2015','mm/dd/yyyy' ...

  7. java计算任意2个日期内的工作日_计算任意2个日期内的工作日(摘抄)

    思路不错,对时间的操作挺全面,参考一下.代码如下: package test; import java.text.SimpleDateFormat; import java.util.Calendar ...

  8. 计算两个日期之间的工作日天数

    计算两个工作日之间的天数 : 利用循环遍历开始时间和结束时间之间的天数,工作日则累计,非工作日跳过,不过如果开始时间和结束时间之间很长,效率可能不高, import java.text.DateFor ...

  9. Java获取两个日期之间的工作日天数

    参数:开始日期,结束日期 String 返回值:天数 int @SuppressWarnings("deprecation") public int getDutyDays(Str ...

  10. 工作日查询(一段日期内的工作日天数查询)

    /* --马万前 --2010-1-15 --查询工作日内的工作天数 */ Create Function dbo.f_WorkDay (  @date_Begin datetime,  @date_ ...

最新文章

  1. pcl中PrincipalCurvatures 和 Normal中的curvature的区别
  2. 在eclipse中安装与配置maven环境
  3. mysql二阶段提交有什么问题_MySQL的事务两阶段提交的技术有什么意义?
  4. 无法打开caffe.pb.h, no such file or directory错误
  5. 小汤学编程之JAVA基础day09——常用类(一):比较器、内部类和包装类
  6. HTML初识HTML
  7. Linux 0.11内核分析01:概述
  8. Anaconda prompt下常用命令
  9. 文档服务器 件排名,服务器排名
  10. 达拉草201771010105《面向对象程序设计(java)》第十周学习总结
  11. 【二分答案】【NOIP模拟10-21】的士碰撞
  12. Ros简单程序编写及使用类Hello World
  13. 在ubuntu12.04下编译android4.1.2添加JNI层出现问题
  14. 兼容ie10以下版本的placeholder属性
  15. 快递如何筹备双十一:德邦快递另类营销
  16. 【maven】maven基础知识总结
  17. windows下Redis多实例部署
  18. python爬取网易云音乐_手把手教你用Python网络爬虫获取网易云音乐歌曲
  19. centos 缩减逻辑卷
  20. 【游戏后端】游戏服务器端开发的一些建议(转载)

热门文章

  1. 小型气象站种类有哪些
  2. js reduce 累加数组里对象某个属性的和 NaN
  3. 重磅!阿里版本【ChatGPT】开放测评!
  4. MySQL查看数据库状态命令详解
  5. css自动换行,css代码
  6. android10桌面布局好看,让你的Android手机界面布局更好看
  7. boox android 4.4,纷极阅读app
  8. java.sql.SQLSyntaxErrorException问题常见解决方案:比如Table xxx doesn‘t exist;Unknown column ‘xxx‘ in ‘where...
  9. AI写作机器人-ai文章生成器在线
  10. 如何修改项目中Git远程仓库地址?