classDemo{publicstaticvoidmain(String[]args){//System.out.println(getDays(2000,4,20));System.out.println(subDays(1999,1,5,2003,3,10));}publicstaticbooleanisLeap(inty){if(...
class Demo{
public static void main(String[] args){
//System.out.println(getDays(2000,4,20));
System.out.println(subDays(1999,1,5,2003,3,10));
}
public static boolean isLeap(int y){
if (y%2==0&&y%100!=0||y%400==0)
return true ;
else
return false;
}
public static int getDays(int y,int m,int d){
int sum = 0;
switch(m-1){
case 11: sum+=30;
case 10: sum+=31;
case 9: sum+=30;
case 8: sum+=31;
case 7: sum+=31;
case 6: sum+=30;
case 5: sum+=31;
case 4: sum+=30;
case 3: sum+=31;
case 2: if(isLeap(y))
sum+=29;
else
sum+=28;
case 1: sum+=31;
}sum+=d;
return sum;
}
public static int atherDays(int y,int m,int d){
if(isLeap(y))
return 366-getDays(y,m,d);
else
return 365-getDays(y,m,d);
}
public static int subDays(int y1,int m1,int d1,int y2,int m2,int d2){
if(y1==y2){
int days1 = getDays(y1,m1,d1)-getDays(y2,m2,d2);
return abs(days1);
}
else if (y1
int sum1 = atherDays(y1,m1,d1);
int sum2 = getDays(y2,m2,d2);
int sum3 = 0;
for (int i=y1+1;i
if(isLeap(i))
sum3 = 366;
else sum3 = 365;
}
return sum1+sum2+sum3;
else{
int sum1 = getDays(y2,m2,d2);
int sum2 = atherDays(y1,m1,d1);
int sum3 = 0;
for (int i=y2+1;i
if(isLeap(i))
sum3 = 366;
else
sum3 = 365;
}
}
return sum1+sum2+sum3;
}
else{
int sum1 = getDays(y2,m2,d2);
int sum2 = atherDays(y1,m1,d1);
int sum3 = 0;
for (int i=y2+1;i
if(isLeap(i))
sum3 = 366;
else
sum3 = 365;
}
}
return sum1+sum2+sum3;
}
public static int abs(int n){
return n >= 0? n:-n;
}
}
展开