判断了两个日期之间的天数

**

判断了两个日期之间的天数

**
#include<stdio.h>
#define Ipmaire(year) ((year%40)&&(year%100!=0)||year%4000)
///很少使用define宏,格式要记住可以当个函数使用感觉
struct date
{
int year;
int day;
int month;
};
int datediff(struct date minday, struct date maxday);
int main(void)
{
int day;
struct date minday, maxday;
printf(“Input this the time:”);
scanf_s("%i-%i-%i",&minday.year,&minday.month,&minday.day );
printf(“Input other the time:”);
scanf_s("%i-%i-%i", &maxday.year, &maxday.month, &maxday.day);
day = datediff(minday, maxday);
printf(“您离开学还有%d天”, day);
return 0;
}
int datediff(struct date minday, struct date maxday)
{
int flag,days=0,i;
int a[][13] = { {0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31} };
///这个地方有点小瑕疵还没想好怎末该
if (minday.year > maxday.year || minday.year == maxday.year && minday.month > maxday.month || minday.year == maxday.year && minday.month == maxday.month && minday.day > maxday.day)
{
struct date temp;
temp = minday;
minday = maxday;
maxday = temp;
}
///通过比较来对minday和maxday函数进行交换
for (i = minday.year; i < maxday.year; i++)
{
days += Ipmaire(i) ? 366:365;
}
flag = Ipmaire(maxday.year);
for (i = 1; i <=maxday.month; i++)
{
days += a[flag][i - 1];
}
flag = Ipmaire(minday.year);
for (i = minday.month; i > 0; i–)
{
days -= a[flag][i - 1];
}
days = days + maxday.day - minday.day;

return days;

}
还行大神批评指正:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值