编程计算两个日期之间的天数

#include<stdio.h>#defineLEAP(y)(y%4==0&&y%100||y%400==0)/*公元y年是否闰年*/longtotaldays(int... #include<stdio.h>
#define LEAP(y) (y%4==0&&y%100||y%400==0) /*公元y年是否闰年*/
long totaldays(int year,int month,int day)/*公元纪年的总天数*/
{ int days[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int c=day,m,y=year-1;
days[2]=28+LEAP(year);
for(m=1;m<month;m++)c+=days[m];
return c+y/4-y/100+y/400+y*365L;
}
void main()
{ int y,m,d; long t1,t2;
printf("date 1: ");
scanf("%d%*c%d%*c%d",&y,&m,&d);
t1=totaldays(y,m,d);
printf("date 2: ");
scanf("%d%*c%d%*c%d",&y,&m,&d);
t2=totaldays(y,m,d);
printf("total days: %ld\n",t2-t1);
}

想请各位解释一下这段代码,函数totaldays的计算方法没看懂~
展开
 我来答
kgwosh
推荐于2021-02-05
知道答主
回答量:30
采纳率:0%
帮助的人:18.8万
展开全部
主函数的功能是输入2个日期,然后求2个日期之间的总天数。
totoaldays的函数就是求从公元0年开始到输入日期之间的总天数。
long totaldays(int year,int month,int day)/*公元纪年的总天数*/
{ int days[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int c=day,m,y=year-1;
days[2]=28+LEAP(year); //确定今年2月的天数
for(m=1;m<month;m++)c+=days[m]; //确定今年的天数
return c+y/4-y/100+y/400+y*365L; //计算方法是先计算假如全部年份都是平年的天数即y*365L,然后加c,c是year那一年的天数,再加上闰年出现的次数。
}
百度网友a9e5318
推荐于2018-05-10
知道答主
回答量:11
采纳率:0%
帮助的人:8.1万
展开全部
this time i was quiet sure the beauty i was enjoy i was far beyond their perception of the saving time
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式