private final int[] months={
0,31,28,31,30,31,30,31,31,30,31,30,31
};
public int daysBetweenDates(String date1, String date2) {
int res=0;
res= Math.abs(getDays(date1)-getDays(date2));
return res;
}
private int getMonth(int month,int year){
if(month!=2)return months[month];
return isRun(year)+28;
}
private int getDays(String date){
int year=Integer.parseInt(date.split("-")[0]);
int month=Integer.parseInt(date.split("-")[1]);
int day=Integer.parseInt(date.split("-")[2]);
int res=0;
for(int i=1971;i<year;i++){
res+=isRun(i)+365;
}
for (int i = 1; i <month; i++) {
res+=getMonth(i,year);
}
return res+day;
}
private int isRun(int year){
if(year%4==0&&year%100!=0||year%400==0){
return 1;
}
return 0;
}
LeetCode简单题1360.日期之间相隔几天
最新推荐文章于 2024-07-25 18:22:10 发布