java中计算两个Date日期相差的月份
介绍
在Java中使用Date对象,计算两个日期相差的月份
示例代码
import java.util.Calendar;
import java.util.Date;
public class DateUtils {
public static int monthsBetween(Date startDate, Date endDate) {
Calendar startCalendar = Calendar.getInstance();
startCalendar.setTime(startDate);
Calendar endCalendar = Calendar.getInstance();
endCalendar.setTime(endDate);
// 确保 startCalendar 的日期在 endCalendar 之前
if (startCalendar.after(endCalendar)) {
Calendar temp = startCalendar;
startCalendar = endCalendar;
endCalendar = temp;
}
int months = endCalendar.get(Calendar.MONTH) - startCalendar.get(Calendar.MONTH);
int years = endCalendar.get(Calendar.YEAR) - startCalendar.get(Calendar.YEAR);
// 如果年份差不为0,则从月份差中减去(年份差 * 12)
return months - years * 12;
}
public static void main(String[] args) {
// 示例:计算两个日期之间的月份差
Date date1 = new Date(); // 当前日期
// 假设有一个日期,比如 2023-01-01
Date date2 = new Date(); // 需要替换为实际日期
int months = monthsBetween(date1, date2);
System.out.println("Months between dates: " + months);
}
}