java求两个时间相差月_java计算两个时间相差几个月

这是一个Java方法,用于计算两个日期相差的月数。首先检查起始日期是否在结束日期之后,然后使用Calendar实例设置日期并进行比较。通过获取年份和月份的差值,考虑日期的变化情况,来精确计算相差的月份数。
摘要由CSDN通过智能技术生成

//计算两个时间相差几个月

public int getMonth(Date start, Date end) {

if (start.after(end)) {

Date t = start;

start = end;

end = t;

}

Calendar startCalendar = Calendar.getInstance();

startCalendar.setTime(start);

Calendar endCalendar = Calendar.getInstance();

endCalendar.setTime(end);

Calendar temp = Calendar.getInstance();

temp.setTime(end);

temp.add(Calendar.DATE, 1);

int year = endCalendar.get(Calendar.YEAR) - startCalendar.get(Calendar.YEAR);

int month = endCalendar.get(Calendar.MONTH) - startCalendar.get(Calendar.MONTH);

if ((startCalendar.get(Calendar.DATE) == 1)&& (temp.get(Calendar.DATE) == 1)) {

return year * 12 + month + 1;

} else if ((startCalendar.get(Calendar.DATE) != 1) && (temp.get(Calendar.DATE) == 1)) {

return year * 12 + month;

} else if ((startCalendar.get(Calendar.DATE) == 1) && (temp.get(Calendar.DATE) != 1)) {

return year * 12 + month;

} else {

return (year * 12 + month - 1) < 0 ? 0 : (year * 12 + month);

}

}

标签:相差,get,startCalendar,month,计算,year,DATE,java,Calendar

来源: https://blog.csdn.net/qq_37050372/article/details/111596318

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值