首页 > 编程语言 >java中求两个日期之间的天数

java中求两个日期之间的天数

时间:2022-12-02 10:36:50浏览次数:36  
标签:java 中求 int 天数 get YEAR Calendar d2 d1


收藏一个常用的代码段,那就是java中求两个日期间的天数,常见于日历中的两个
日期(yyyy-mm-dd)格式,要求它们之间的相差的天数,例子如下:

Calendar startCalendar = Calendar.getInstance();
//dstar为yyyy-MM-dd格式的字符串
startCalendar.setTime((new SimpleDateFormat("yyyy-MM-dd")).parse(dstar));

Calendar endCalendar = Calendar.getInstance();

endCalendar.setTime((new SimpleDateFormat("yyyy-MM-dd")).parse(dend));

int days=new BigDecimal(getDaysBetween(startCalendar, endCalendar)));




其中getDaysBetween方法为:


public int getDaysBetween(Calendar d1, Calendar d2) {
if (d1.after(d2)) {
java.util.Calendar swap = d1;
d1 = d2;
d2 = swap;
}
int days = d2.get(Calendar.DAY_OF_YEAR) - d1.get(Calendar.DAY_OF_YEAR);
int y2 = d2.get(Calendar.YEAR);
if (d1.get(Calendar.YEAR) != y2) {
d1 = (Calendar) d1.clone();
do {
days += d1.getActualMaximum(Calendar.DAY_OF_YEAR);// 得到当年的实际天数
d1.add(Calendar.YEAR, 1);

} while (d1.get(Calendar.YEAR) != y2);
}
return days;
}

标签:java,中求,int,天数,get,YEAR,Calendar,d2,d1
From: https://blog.51cto.com/u_14230175/5905567

相关文章