我是靠谱客的博主 昏睡大叔,最近开发中收集的这篇文章主要介绍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("%dn",days);

}

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

最后

以上就是昏睡大叔为你收集整理的c语言时间错误的是,帮忙解决一下C语言求日期差的问题!谢谢!的全部内容,希望文章能够帮你解决c语言时间错误的是,帮忙解决一下C语言求日期差的问题!谢谢!所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部