C语言计算日期差的方法示例
本文实例讲述了C语言计算日期差的方法。分享给大家供大家参考,具体如下:
历史上,不同的人类聚居地可能有不同的历法,因而记录下来的资料中日期的换算就很麻烦。幸好今天我们统一使用公元纪年法。当然,这种历法对求两个日期差多少天也不是十分简便,但毕竟是可以忍受的。
下面的程序计算了两个日期的差值,两个日期都使用公元纪年法。
#include <bits/stdc++.h>
using namespace std;
int to_day(int y, int m, int d)
{
int mon[] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
int day = 0;
int i;
for(i=1; i<y; i++){
day += (i%4==0 && i%100!=0 || i%400==0)? 366 : 365;
}
if(y%4==0 && y%100!=0 || y%400==0) mon[2]++;
for(i=1; i<m; i++){
day += mon[i];
}
return day + d;
}
int diff(int y1, int m1, int d1, int y2, int m2, int d2)
{
int a = to_day(y1, m1, d1);
int b = to_day(y2, m2, d2);
return b-a;
}
int main(
{
//int n = diff(1864,12,31,1865,1,1);
int n = diff(1864,12,31,2012,3,18);
printf("%d\n", n);
return 0;
}
int n = diff(1864,12,31,2012,3,18);// 输出 53768
PS:这里再为大家推荐几款关于日期与天数计算的在线工具供大家使用:
在线日期/天数计算器:
http://tools.jb51.net/jisuanqi/date_jisuanqi
在线万年历日历:
http://tools.jb51.net/bianmin/wannianli
在线阴历/阳历转换工具:
http://tools.jb51.net/bianmin/yinli2yangli
希望本文所述对大家C语言程序设计有所帮助。
相关文章
解析sizeof, strlen, 指针以及数组作为函数参数的应用
本篇文章是对sizeof, strlen, 指针以及数组作为函数参数的应用进行了详细的分析介绍,需要的朋友参考下2013-05-05
C++中使用function和bind绑定类成员函数的方法详解
这篇文章主要介绍了C++中使用function和bind绑定类成员函数的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-11-11


最新评论