怎么计算两个日期之间的天数?
求核心代码(判断平闰年等已输入,请在两个星号之间输入核心代码)
#include<stdio.h>
int main()
{
int y1,m1,d1,y2,m2,d2,i,sum,sum1,sum2,sum3,sum4,sum5,sum6,sum7,sum8,A[12]={0,31,59,90,120,151,181,212,243,273,304,334};
while(1)
{
printf("请输入年份,可自动判断平闰年(输入后请按回车)\n");
scanf("%d",&y1);
if(y1%100==0)
{
if(y1%400==0)
printf("此年份为闰年,2月不可超过29天。\n");
else
printf("此年份为平年,2月不可超过28天。\n");
}
if(y1%100!=0)
{
if(y1%4==0)
printf("此年份为闰年,2月不可超过29天。\n");
else
printf("此年份为平年,2月不可超过28天。\n");
}
printf("请输入月份(输入后请按回车)\n");
scanf("%d",&m1);
while(m1>=13||m1<=0)
{
printf("月份输入错误\n请输入月份(输入后请按回车)\n");
scanf("%d",&m1);
}
printf("请输入日期(输入后请按回车)\n");
scanf("%d",&d1);
if(y1%100==0 && y1%400==0 && m1==2)
{
while(d1<=0||d1>=30)
{
printf("日期输入错误\n请输入日期(输入后请按回车)\n");
scanf("%d",&d1);
}
}
if(y1%100!=0 && y1%400!=0 && m1==2)
{
while(d1<=0||d1>=29)
{
printf("日期输入错误\n请输入日期(输入后请按回车)\n");
scanf("%d",&d1);
}
}
if(y1%100!=0 && y1%4==0 && m1==2)
{
while(d1<=0||d1>=30)
{
printf("日期输入错误\n请输入日期(输入后请按回车)\n");
scanf("%d",&d1);
}
}
if(y1%100!=0 && y1%4!=0 && m1==2)
{
while(d1<=0||d1>=30)
{
printf("日期输入错误\n请输入日期(输入后请按回车)\n");
scanf("%d",&d1);
}
}
if(m1==1 || m1==3 || m1==5 || m1==7 || m1==8 || m1==10 || m1==12)
{
while(d1<=0 || d1>=32)
{
printf("日期输入错误\n请输入日期(输入后请按回车)\n");
scanf("%d",&d1);
}
}
if(m1==4 || m1==6 || m1==9 || m1==11)
{
while(d1<=0 || d1>=31)
{
printf("日期输入错误\n请输入日期(输入后请按回车)\n");
scanf("%d",&d1);
}
}
printf("请输入年份,可自动判断平闰年(输入后请按回车)\n");
scanf("%d",&y2);
if(y2%100==0)
{
if(y2%400==0)
printf("此年份为闰年,2月不可超过29天。\n");
else
printf("此年份为平年,2月不可超过28天。\n");
}
if(y2%100!=0)
{
if(y2%4==0)
printf("此年份为闰年,2月不可超过29天。\n");
else
printf("此年份为平年,2月不可超过28天。\n");
}
printf("请输入月份(输入后请按回车)\n");
scanf("%d",&m2);
while(m2>=13||m2<=0)
{
printf("月份输入错误\n请输入月份(输入后请按回车)\n");
scanf("%d",&m2);
}
printf("请输入日期(输入后请按回车)\n");
scanf("%d",&d2);
if(y2%100==0 && y2%400==0 && m2==2)
{
while(d2<=0||d2>=30)
{
printf("日期输入错误\n请输入日期(输入后请按回车)\n");
scanf("%d",&d2);
}
}
if(y2%100!=0 && y2%400!=0 && m2==2)
{
while(d2<=0||d2>=29)
{
printf("日期输入错误\n请输入日期(输入后请按回车)\n");
scanf("%d",&d2);
}
}
if(y2%100!=0 && y2%4==0 && m2==2)
{
while(d2<=0||d2>=30)
{
printf("日期输入错误\n请输入日期(输入后请按回车)\n");
scanf("%d",&d2);
}
}
if(y2%100!=0 && y2%4!=0 && m2==2)
{
while(d2<=0||d2>=30)
{
printf("日期输入错误\n请输入日期(输入后请按回车)\n");
scanf("%d",&d2);
}
}
if(m2==1 || m2==3 || m2==5 || m2==7 || m2==8 || m2==10 || m2==12)
{
while(d2<=0 || d2>=32)
{
printf("日期输入错误\n请输入日期(输入后请按回车)\n");
scanf("%d",&d2);
}
}
if(m2==4 || m2==6 || m2==9 || m2==11)
{
while(d2<=0 || d2>=31)
{
printf("日期输入错误\n请输入日期(输入后请按回车)\n");
scanf("%d",&d2);
}
}
*
*
printf("这两个日期相隔%d天。\n",sum);
system("pause");
return 0;
}
|