定义一个结构体类型存放日期型数据,求两个日期之间相差多少天 50

 我来答
heart阿飞55
2018-05-17 · TA获得超过1086个赞
知道大有可为答主
回答量:3030
采纳率:82%
帮助的人:557万
展开全部
#include<stdio.h>
#include<conio.h>

typedef struct date
{
int year;
int month;
int day;
}Date;

int getDay(Date date1, Date date2)
{ // 1 2 3 4 5 6 7 8 9 10 11
int mon[11]={31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30};
int i;
long temp1=date1.day, temp2=date2.day;//day

for(i=date1.month-2; i>=0; i--)
{
temp1+=mon[i];
}
for(i=date2.month-2; i>=0; i--)
{
temp2+=mon[i];
}//month

temp1+=((date1.year-1)*365)+(date1.year/4);
temp2+=((date2.year-1)*365)+(date2.year/4);//year

return temp2-temp1;
}

void main()
{
Date date1, date2;

date1.year=2010;
date1.month=5;
date1.day=20;

date2.year=2011;
date2.month=5;
date2.day=25;

printf("这两个日期之间的天数为:%d", getDay(date1, date2));
getch();
}

这里 算法很巧妙,符合我的风格
不过有很多漏洞的,比如日期的格式,还有计算两个日子之间的天数可能有负数
建议使用面向对象的思想
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式