题目://计算1979年12月15日到2015年3月2日差几天
分析:将两个日期都转化为公元1年1月1日再将数值相减
public class _5_博弈_00日期计算 {
public static boolean isrunnian(int year) //判断是不是闰年 是4的倍数 不是100的倍数 是400的倍数
{
if(year%400==0)
return true;
else if(year%100==0)
return false;
else if (year%4==0)
return true;
else
return false;
}
public static int returnzero (int year,int month,int day)
{
int[] month1 = {0,31,28,31,30,31,30,31,31,30,31,30,31}; //把月份直接给出
if(isrunnian(year)==true) //如果该年是闰年 2月+1天
month1[2]++;
int sum = 0;
for(int i=1;i<year;i++) //从1年开始算 例如公元2年算的是前1整年
{
sum+=365;
if(isrunnian(i)==true)
sum++;
}
for(int i=1;i<month;i++) //从1月开始算 并且算到month-1 例如9月1日 加前八个月整月 加一天
{
sum+=month1[i];
}
sum+=day;
return sum;
}
public static int day(int year1,int month1,int day1,int year2,int month2,int day2)
{
return returnzero(year2,month2,day2)-returnzero(year1,month1,day1);
}
public static void main(String[] args) { //计算1979年12月15日到2015年3月2日差几天
System.out.print(day(1979,12,15,2015,3,2));
}
}