C语言 计算两个日期相差的天数

个人博客,最近新建的。

计算两个固定格式日期之间相差的天数。

之前看有人说是让小的日期一点点加到大日期,这样的话如果相差很大的日期,应该会影响效率的。我想的是按照年月日的顺序,从大到小,直接计算出来,

首先计算两个日期年之间相差的天数,分两种情况:如果month1<month2, 则计算之后使得year1=year2; 如果month1>month2,则计算后使得year1=year2-1,差的天数交给接下来的月计算,计算中要考虑到闰年与平年的区分,例如2000/2/1-2001/2/1,需要+366天,而2000/3/1-2001/3/1则需要+365天。

年保持相同后,就计算月份相差的天数。举个例子,计算1/20-3/8,只需要计算(1/20-1/31)+2月份的天数+(3/1-3/8),就是月份相差的总天数(同样需要考虑闰年的二月份是29天)。在上述计算年份时month1>month2 的情况下,需要考虑month1=12时需要进位为1。

年相差的天数+月相差的天数就是两个日期相差的总天数。

代码实现见,承喏的博客-日期计算,拷贝代码能够直接运行。

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值