计算2个日期之间的相隔的工作日不算第一天
来源:互联网 发布:ip域名查询 编辑:程序博客网 时间:2024/05/22 10:27
package com.example.domain;import java.util.Calendar;import java.util.Date;public class TestDateWorkingTime { public int fixTime(Date start , Date end ){ Calendar cal_start = Calendar.getInstance(); Calendar cal_end = Calendar.getInstance(); cal_start.setTime(start); cal_end.setTime(end); return getWorkingDay(cal_start, cal_end); } /** * 计算2个日期之间的相隔天数 * * @param d1 * @param d2 * @return */ public int getWorkingDay(java.util.Calendar d1, java.util.Calendar d2) { int result = -1; if (d1.after(d2)) { // swap dates so that d1 is start and d2 is end return 0; } int betweendays = getDaysBetween(d1, d2); int charge_date = 0; int charge_start_date = 0;//开始日期的日期偏移量 int charge_end_date = 0;//结束日期的日期偏移量 // 日期不在同一个日期内 int stmp; int etmp; stmp = 7 - d1.get(Calendar.DAY_OF_WEEK); etmp = 7 - d2.get(Calendar.DAY_OF_WEEK); if (stmp != 0 && stmp != 6) {// 开始日期为星期六和星期日时偏移量为0 charge_start_date = stmp - 1; } if (etmp != 0 && etmp != 6) {// 结束日期为星期六和星期日时偏移量为0 charge_end_date = etmp - 1; }// } result = (getDaysBetween(this.getNextMonday(d1), this.getNextMonday(d2)) / 7) * 5 + charge_start_date - charge_end_date; //System.out.println("charge_start_date>" + charge_start_date); //System.out.println("charge_end_date>" + charge_end_date); //System.out.println("between day is-->" + betweendays); return result; } public int getDaysBetween(java.util.Calendar d1, java.util.Calendar d2) { if (d1.after(d2)) { // swap dates so that d1 is start and d2 is end java.util.Calendar swap = d1; d1 = d2; d2 = swap; } int days = d2.get(java.util.Calendar.DAY_OF_YEAR) - d1.get(java.util.Calendar.DAY_OF_YEAR); int y2 = d2.get(java.util.Calendar.YEAR); if (d1.get(java.util.Calendar.YEAR) != y2) { d1 = (java.util.Calendar) d1.clone(); do { days += d1.getActualMaximum(java.util.Calendar.DAY_OF_YEAR); d1.add(java.util.Calendar.YEAR, 1); } while (d1.get(java.util.Calendar.YEAR) != y2); } return days; } public Calendar getNextMonday(Calendar date) { Calendar result = null; result = date; do { result = (Calendar) result.clone(); result.add(Calendar.DATE, 1); } while (result.get(Calendar.DAY_OF_WEEK) != 2); return result; }}
阅读全文
0 0
- 计算2个日期之间的相隔的工作日不算第一天
- 计算个日期之间相隔的天数
- java实现获取两个日期之间相隔的工作日天数
- 计算两个任意日期之间的工作日
- 计算两日期之间的工作日天数
- [MSSQL]计算两个日期之间的工作日
- 计算两个日期之间的工作日天数
- 计算两个日期之间的工作日
- 计算两个日期之间的工作日
- JAVA计算2个日期相隔的自然月
- calendar 计算两个日期之间相隔的天数
- Android 计算两个日期之间相隔的天数
- C/C++完成两个日期之间相隔天数的计算
- 计算日期加n个工作日之后的日期
- php-获取从今天开始计算第5个工作日的日期
- 在Access中计算两个日期之间的工作日天数
- 003_005 Python 计算日期之间的工作日
- JAVA后台计算两个日期之间的工作日时间差
- not in 两个列表
- HDU-1711
- MyBatis文档观后整理
- 欢迎使用CSDN-markdown编辑器
- 在Ubuntu16.04安装torch7笔记
- 计算2个日期之间的相隔的工作日不算第一天
- Java字符编码原理_动力节点Java学院整理
- Android7.0 PhoneApp的启动
- 实验一:写一个hello world小程序
- 地址转经纬度(百度)function
- 西瓜书-机器学习《一》
- %:的使用
- 前向传播和反向传播(举例说明)
- python- 路径