设为首页 加入收藏

TOP

C语言计算两个日期之间的天数
2014-11-24 01:40:27 来源: 作者: 【 】 浏览:3
Tags:语言 计算 两个日期 之间 天数

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


要考虑闰年的情况,判断闰年的口诀: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;iif(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;is+=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日的天数,然后相减。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Python 程序员必知必会的开发者工.. 下一篇C/C++指针类型的定义

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: