2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > c语言日期间的天数 C语言计算两个日期之间的天数

c语言日期间的天数 C语言计算两个日期之间的天数

时间:2020-08-18 14:33:19

相关推荐

c语言日期间的天数 C语言计算两个日期之间的天数

计算两个年月日之间的天数,思路是分别算出日期的总天数然后相减。 要考虑闰年的情况,判断闰年的口诀:4年一闰,100年不闰,400

计算两个年月日之间的天数,思路是分别算出日期的总天数然后相减。

要考虑闰年的情况,判断闰年的口诀:4年一闰,100年不闰,400年再闰。

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

网上找了一个(偷懒= =!),修改下如下:

#include

int sum(int y,int m,int d)

{

unsigned char x[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

int i,s=0;

for(i=1;i

if(i%4==0 && i%100!=0 || i%400==0)

s+=366;//闰年

else

s+=365;//平年

if(y%4==0 && y%100!=0 || y%400==0)

x[2]=29;

for(i=1;i

s+=x[i];//整月的天数

s+=d;//日的天数

return s;//返回总天数,相对公元1年

}

void main()

{

unsigned char y1,m1,d1,y2,m2,d2;

int s1,s2;

printf("输入第一个年 月 日:");

scanf("%d %d %d",&y1,&m1,&d1);

printf("输入第二个年 月 日:");

scanf("%d %d %d",&y2,&m2,&d2);

s1=sum(y1,m1,d1);

s2=sum(y2,m2,d2);

if (s1 > s2)

printf("相差天数:%ld\n",s1-s2);

else

printf("相差天数:%ld\n",s2-s1);

}

以上代码VC6编译测试通过。

虽然这个思路显得有些笨,但是其它算法,代码太长太复杂,要考虑多种情况,不如直接算两个日期距离公元元年1月1日的天数,然后相减。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。