当前位置:网站首页>获取日期之间的天数、获取中文日期、获得日期的下一个星期一的日期、获取工作日、获取休息日
获取日期之间的天数、获取中文日期、获得日期的下一个星期一的日期、获取工作日、获取休息日
2022-04-22 05:54:00 【陈君扬】
/** * 获取日期之间的天数 * @param d1 * @param d2 * @return */
public int getDaysBetween(java.util.Calendar d1, java.util.Calendar d2) {
if (d1.after(d2)) {
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;
}
/** * 获取工作日 * @param d1 * @param d2 * @return */
public int getWorkingDay(java.util.Calendar d1, java.util.Calendar d2) {
int result = -1;
if (d1.after(d2)) {
java.util.Calendar swap = d1;
d1 = d2;
d2 = swap;
}
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;
return result;
}
/** * 获取中文日期 * @param date * @return */
public String getChineseWeek(Calendar date) {
final String dayNames[] = {
"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
int dayOfWeek = date.get(Calendar.DAY_OF_WEEK);
return dayNames[dayOfWeek - 1];
}
/** * 获得日期的下一个星期一的日期 * @param date * @return */
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;
}
/** * 获取休息日 * @param d1 * @param d2 * @return */
public int getHolidays(Calendar d1, Calendar d2) {
return this.getDaysBetween(d1, d2) - this.getWorkingDay(d1, d2);
}
版权声明
本文为[陈君扬]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_36216193/article/details/114091757
边栏推荐
猜你喜欢

sort排序

使用PG_STAT_REPLICATION监视复制

Summary of redis core knowledge points (super detailed)

Heavy! Kyushu cloud won the award of "best partner of operators in 2020"

Partition of MySQL database

官宣|Skyline正式加入OpenStack官方模块

Topic of SSM source code

mysql 外键约束

不错的简单递归题,字符串递归训练

Generation principle and recurrence of epic vulnerability log4j2 that is popular in it circle
随机推荐
使用PG_STAT_REPLICATION监视复制
API慢接口分析
并查集简单应用(红色警报)
Jasmine x4-q and jasmine x4-1u, detailed comparison
InnoDB storage engine of MySQL
synchronized 关键字和volatile关键字的作用和区别
翻硬币(蓝桥杯)
redis核心知识点总结(超详细)
Custom current limiting frame
7-4 到底是不是太胖了 (10 分)PTA
年度最具投资价值品牌 | 九州云入选艾媒“2021新经济年度巅峰榜”
Hit the pain point directly, Kyushu cloud 5g private network helps FAW Fusheng intelligent logistics construction
Kyushu cloud, the brand with the most investment value of the year, was selected into the "2021 new economy annual peak list" of AI media
九州云入选2021中国信创500强
恭喜! 中移动智家中心入选2020年度ICT行业龙虎榜
数美科技未成年人保护解决方案重磅上线,开启未成年人网络护航新时代
有点意思的质数题HDU5750
async与await
MySQL 5.7.16 decompression installation process
MySQL 实现行转列SQL