c语言时间错误的是,帮忙解决一下C语言求日期差的问题!谢谢!

帮忙解决一下C语言求日期差的问题!谢谢!0

【问题描述】

结构

struct Date {

int year;

int month;

int day;

};

利用该结构编写一个程序用来计算两个日期之间相差的天数。

【输入形式】

输入两个日期,每个日期分占一行,在一行中日期的年、月、日是三个整数,以空格分隔。并假设第二个日期大于或等于第一个日期。

【输出形式】

第二个日期与第一个日期间相差的天数。

【输入样例】

2003 3 25

2003 3 29

【输出样例】

4

#include

struct date {

int year;

int month;

int day;

};

main()

{

struct date date1,date2;

int days;

int day=0,year=0;

int daytab1[]={31,28,31,30,31,30,31,31,30,31,30,31};

int daytab2[]={31,28,31,30,31,30,31,31,30,31,30,31};

int i;

scanf("%d%d%d",&date1.year,&date1.month,&date1.day);

scanf("%d%d%d",&date2.year,&date2.month,&date2.day);

if((date1.year%4==0&&date1.year%100!=0)||(date1.year%400==0))

{

daytab1[1]=29;

year=366;

}

else

{

daytab1[1]=28;

year=365;

}

if((date2.year%4==0&&date2.year%100!=0)||(date2.year%400==0))

{

daytab2[1]=29;

year=366;

}

else

{

daytab2[1]=28;

year=365;

}

if(date2.year>=date1.year)

{

if(date1.year==date2.year&&date2.month>=date1.month)

{

if(date1.year==date2.year&&date1.month==date2.month&&date2.day>=date1.day)

days=date2.day-date1.day;

else

{

for(i=date2.month-1;i>date1.month;i--)

{

days=date2.day;

days=days+daytab1[i-1];

}

days=days+(daytab1[date1.month-1]-date1.day);

}

}

}

else

{

if(daytab1[1]==28)

days=(date2.year-date1.year)*365+daytab1[date1.month-1]-date1.day+date2.day;

else if(daytab1[1]==29)

days=(date2.year-date1.year)*365+daytab1[date1.month-1]-date1.day+date2.day+1;

}

printf("%d\n",days);

}

谢谢大家,帮忙改一下,修改成功会追加分数!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值