问题:编写一个程序,输入两个日期,输出两个日期差多少天;
运行图:
源代码:
#include <stdio.h>
struct A
{
int a;
int b;
int c;
};
int main(void)
{
int i,j,m,g[2],k=0,l;
char s[12]={31,28,31,30,31,30,31,31,30,31,30,31};
struct A stu[2];
//printf("%d %d",g[0],g[1]);
for(i=0;i<2;i++)
{
printf("请输入第%d个日期:",i+1);
scanf("%d %d %d",&stu[i].a,&stu[i].b,&stu[i].c);
}
for(i=0;i<2;i++)
{
if((stu[i].a)%400==0||((stu[i].a)%100!=0&&(stu[i].a)%4==0))
{
s[1]=29;
}
if(stu[i].b==1) g[i]=stu[i].c;
else
{
for(j=0;j<=((stu[i].b)-2);j++)
{
k=k+s[j];
}
g[i]=k+stu[i].c;
k=0;
}
}
//printf("%d %d",g[0],g[1]);
if(stu[0].a==stu[1].a) m=g[1]-g[0];
else
{
for(i=0;i<2;i++)
{
if((stu[i].a)%400==0||((stu[i].a)%100!=0&&(stu[i].a)%4==0))
{
l=365;
}
else l=0;
}
if(l==0) l=366;
m=g[1]-g[0]+l;
}
printf("两个日期差:%d天",m);
return 0;
}