功能介绍:本程序是输入两个年份,月份,日期,然后求出这两个日期之间共距离多少天。如:输入 1996 7 11(按回车)再输入 2014 8 4(按回车),就会显示它们之间相距多少天了。
#include<stdio.h>
#include<conio.h>
//个人思想,盗版必究!
//-是公元前。
main()
{
int y1,y2,m1,m2,d1,d2,dd1,dd2;
int a1,a2,n1,n2,c1,c2,w1,w2;
int s1=0,s2=0,d,s,n;
printf("请输入第一年的年份,月份,日期。\n");
scanf("%d%d%d",&y1,&m1,&d1);
printf("请输入第二年的年份,月份,日期。\n");
scanf("%d%d%d",&y2,&m2,&d2);
n1=y1;
n2=y2;
dd1=d1;
dd2=d2;
if (y1%4==0&&y1%100!=0||y1%400==0)
{
a1=1;
w1=366;
}
else
{
a1=0;
w1=365;
}
if (y2%4==0&&y2%100!=0||y2%400==0)
{
a2=1;
w2=366;
}
else
{
a2=0;
w2=365;
}
if (m1==1 ||m1==3||m1==5||m1==7||m1==8||m1==10||m1==12)
{
if ( d1>31||d1<=0 )
{
printf("第一个日期error\n");
c1=1;
}
}
else if (m1<=0||m1>12)
{
printf("第一个月份error\n");
if ( d1>31||d1<=0 )
{
printf("第一个日期error\n");
c1=1;
}
}
if (m1==2 ||m1==4||m1==6||m1==9||m1==11)
{
if ( m1==2)
{
if ( a1==1)
{
if ( d1>29||d1<=0)
{
printf("第一个二月份日期error\n");
c1=1;
}
}
else
{
if (d1>28||d1<=0)
{
printf("第一个二月份日期error\n");
c1=1;
}
}
}
else
{
if ( d1>30||d1<=0)
{
printf("第一个日期error\n");
c1=1;
}
}
}
if (m2==1 ||m2==3||m2==5||m2==7||m2==8||m2==10||m2==12)
{
if ( d2>31||d2<=0 )
{
printf("第二个日期error\n");
c2=1;
}
}
else if (m2<=0||m2>12)
{
printf("第二个月份error\n");
if ( d2>31||d2<=0 )
{
printf("第二个日期error\n");
c2=1;
}
}
if (m2==2 ||m2==4||m2==6||m2==9||m2==11)
{
if ( m2==2)
{
if ( a2==1)
{
if ( d2>29||d2<=0)
{
printf("第二个二月份日期error\n");
c2=1;
}
}
else
{
if (d2>28||d2<=0)
{
printf("第二个二月份日期error\n");
c2=1;
}
}
}
else
{
if ( d2>30||d2<=0)
{
printf("第二个日期error\n");
c2=1;
}
}
}
switch (m1-1)
{
case 11: d1=d1+30;
case 10: d1=d1+31;
case 9: d1=d1+30;
case 8: d1=d1+31;
case 7: d1=d1+31;
case 6: d1=d1+30;
case 5: d1=d1+31;
case 4: d1=d1+30;
case 3: d1=d1+31;
case 2:
{
if(a1==1)
d1=d1+29;
else
d1=d1+28;
}
case 1: d1=d1+30;break;
case 0: d1=d1+30;break;
}
switch (m2-1)
{
case 11: d2=d2+30;
case 10: d2=d2+31;
case 9: d2=d2+30;
case 8: d2=d2+31;
case 7: d2=d2+31;
case 6: d2=d2+30;
case 5: d2=d2+31;
case 4: d2=d2+30;
case 3: d2=d2+31;
case 2:
{
if(a2==1)
d2=d2+29;
else
d2=d2+28;
}
case 1: d2=d2+30;break;
case 0: d2=d2+30;break;
}
if (c1!=1&&c2!=1&&y1!=0&&y2!=0&&1<=m1&&m1<=12&&1<=m2&&m2<=12)
{
if (y1==y2)
{
if (d1<d2)
n=d2-d1;
else
n=d1-d2;
printf("从%d年%d月%d日到%d年%d月%d日,共相距%d天\n",n1,m1,dd1,n2,m2,dd2,n+1);
}
else if(y1>y2)
{
for(;y2<--y1;y2++)
{
if(y2%4==0&&y2%100!=0||y2%400==0)
s1=s1+366;
else
s2=s2+365;
}
s=s1+s2;
printf("从%d年%d月%d日到%d年%d月%d日,共相距%d天\n",n1,m1,dd1,n2,m2,dd2,s+(w2-d2)+d1);
}
else
{
for(;y1<--y2;y1++)
{
if(y1%4==0&&y1%100!=0||y1%400==0)
s1=s1+366;
else
s2=s2+365;
}
s=s1+s2;
printf("从%d年%d月%d日到%d年%d月%d日,共相距%d天\n",n1,m1,dd1,n2,m2,dd2,s+(w1-d1)+d2);
}
}
else
printf("输入error!");
getch();
return (0);
}
本程序还有不足之处,请广大读者查阅。

#include<stdio.h>
#include<conio.h>
//个人思想,盗版必究!
//-是公元前。
main()
{
int y1,y2,m1,m2,d1,d2,dd1,dd2;
int a1,a2,n1,n2,c1,c2,w1,w2;
int s1=0,s2=0,d,s,n;
printf("请输入第一年的年份,月份,日期。\n");
scanf("%d%d%d",&y1,&m1,&d1);
printf("请输入第二年的年份,月份,日期。\n");
scanf("%d%d%d",&y2,&m2,&d2);
n1=y1;
n2=y2;
dd1=d1;
dd2=d2;
if (y1%4==0&&y1%100!=0||y1%400==0)
{
a1=1;
w1=366;
}
else
{
a1=0;
w1=365;
}
if (y2%4==0&&y2%100!=0||y2%400==0)
{
a2=1;
w2=366;
}
else
{
a2=0;
w2=365;
}
if (m1==1 ||m1==3||m1==5||m1==7||m1==8||m1==10||m1==12)
{
if ( d1>31||d1<=0 )
{
printf("第一个日期error\n");
c1=1;
}
}
else if (m1<=0||m1>12)
{
printf("第一个月份error\n");
if ( d1>31||d1<=0 )
{
printf("第一个日期error\n");
c1=1;
}
}
if (m1==2 ||m1==4||m1==6||m1==9||m1==11)
{
if ( m1==2)
{
if ( a1==1)
{
if ( d1>29||d1<=0)
{
printf("第一个二月份日期error\n");
c1=1;
}
}
else
{
if (d1>28||d1<=0)
{
printf("第一个二月份日期error\n");
c1=1;
}
}
}
else
{
if ( d1>30||d1<=0)
{
printf("第一个日期error\n");
c1=1;
}
}
}
if (m2==1 ||m2==3||m2==5||m2==7||m2==8||m2==10||m2==12)
{
if ( d2>31||d2<=0 )
{
printf("第二个日期error\n");
c2=1;
}
}
else if (m2<=0||m2>12)
{
printf("第二个月份error\n");
if ( d2>31||d2<=0 )
{
printf("第二个日期error\n");
c2=1;
}
}
if (m2==2 ||m2==4||m2==6||m2==9||m2==11)
{
if ( m2==2)
{
if ( a2==1)
{
if ( d2>29||d2<=0)
{
printf("第二个二月份日期error\n");
c2=1;
}
}
else
{
if (d2>28||d2<=0)
{
printf("第二个二月份日期error\n");
c2=1;
}
}
}
else
{
if ( d2>30||d2<=0)
{
printf("第二个日期error\n");
c2=1;
}
}
}
switch (m1-1)
{
case 11: d1=d1+30;
case 10: d1=d1+31;
case 9: d1=d1+30;
case 8: d1=d1+31;
case 7: d1=d1+31;
case 6: d1=d1+30;
case 5: d1=d1+31;
case 4: d1=d1+30;
case 3: d1=d1+31;
case 2:
{
if(a1==1)
d1=d1+29;
else
d1=d1+28;
}
case 1: d1=d1+30;break;
case 0: d1=d1+30;break;
}
switch (m2-1)
{
case 11: d2=d2+30;
case 10: d2=d2+31;
case 9: d2=d2+30;
case 8: d2=d2+31;
case 7: d2=d2+31;
case 6: d2=d2+30;
case 5: d2=d2+31;
case 4: d2=d2+30;
case 3: d2=d2+31;
case 2:
{
if(a2==1)
d2=d2+29;
else
d2=d2+28;
}
case 1: d2=d2+30;break;
case 0: d2=d2+30;break;
}
if (c1!=1&&c2!=1&&y1!=0&&y2!=0&&1<=m1&&m1<=12&&1<=m2&&m2<=12)
{
if (y1==y2)
{
if (d1<d2)
n=d2-d1;
else
n=d1-d2;
printf("从%d年%d月%d日到%d年%d月%d日,共相距%d天\n",n1,m1,dd1,n2,m2,dd2,n+1);
}
else if(y1>y2)
{
for(;y2<--y1;y2++)
{
if(y2%4==0&&y2%100!=0||y2%400==0)
s1=s1+366;
else
s2=s2+365;
}
s=s1+s2;
printf("从%d年%d月%d日到%d年%d月%d日,共相距%d天\n",n1,m1,dd1,n2,m2,dd2,s+(w2-d2)+d1);
}
else
{
for(;y1<--y2;y1++)
{
if(y1%4==0&&y1%100!=0||y1%400==0)
s1=s1+366;
else
s2=s2+365;
}
s=s1+s2;
printf("从%d年%d月%d日到%d年%d月%d日,共相距%d天\n",n1,m1,dd1,n2,m2,dd2,s+(w1-d1)+d2);
}
}
else
printf("输入error!");
getch();
return (0);
}
本程序还有不足之处,请广大读者查阅。
