调试 两个日期相差的天数
package test; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class Time { public static int differentDays(Date date1,Date date2){ Calendar cal1 = Calendar.getInstance(); Calendar cal2 = Calendar.getInstance(); cal1.setTime(date1); cal2.setTime(date2); int day1 = cal1.get(Calendar.DAY_OF_YEAR); int day2 = cal2.get(Calendar.DAY_OF_YEAR); int year1 = cal1.get(Calendar.YEAR); int year2 = cal2.get(Calendar.YEAR); if(year1 != year2){ //不同年 int timeDistance1 = 0 ; int timeDistance2 = 0 ; for(int i=year2;i<year1;i++){ if(i%4==0 && i%100!=0 || i%400==0){ //闰年 timeDistance1 += 366; } else{ //不是闰年 timeDistance1 += 365; } } if(year2%4==0 && year2%100!=0 || year2%400==0){ //闰年 timeDistance2 +=1; } return (day1+timeDistance1-day2-timeDistance2) ; }else{ //同年 return day1-day2; } } public static void main(String[] args) throws ParseException { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");//注意月份是MM Date date1 = simpleDateFormat.parse("2020-01-01"); Date date2 = simpleDateFormat.parse("2019-12-25"); System.out.println(differentDays(date1,date2)); } }
public static void calculateTimeDifferenceBySimpleDateFormat() throws ParseException { SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); /*天数差*/ Date fromDate1 = simpleFormat.parse("2021-02-28 12:00"); Date fromDate2 = simpleFormat.parse("2019-02-28 12:00"); long from1 = fromDate1.getTime(); long from2 = fromDate2.getTime(); int days = (int) ((from1-from2) / (1000 * 60 * 60 * 24)); System.out.println("两个时间之间的天数差为:" + days); /*小时差*/ Date fromDate3 = simpleFormat.parse("2020-01-14 00:00"); Date fromDate4 = simpleFormat.parse("2019-01-14 00:00"); long from3 = fromDate3.getTime(); long from4 = fromDate4.getTime(); int hours = (int) ((from3-from4) / (1000 * 60 * 60)); System.out.println("两个时间之间的小时差为:" + hours); /*分钟差*/ Date fromDate5 = simpleFormat.parse("2020-01-01 12:00"); Date fromDate6 = simpleFormat.parse("2020-01-01 11:00"); long from5 = fromDate5.getTime(); long from6 = fromDate6.getTime(); int minutes = (int) ((from5 - from6) / (1000 * 60)); System.out.println("两个时间之间的分钟差为:" + minutes);