本文实例讲述了C语言计算日期差的方法。分享给大家供大家参考,具体如下:
历史上,不同的人类聚居地可能有不同的历法,因而记录下来的资料中日期的换算就很麻烦。幸好今天我们统一使用公元纪年法。当然,这种历法对求两个日期差多少天也不是十分简便,但毕竟是可以忍受的。
下面的程序计算了两个日期的差值,两个日期都使用公元纪年法。
#include <bits/stdc++.h>using namespace std;int to_day(int y,int m,int d){ int mon[] = {0,31,28,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,1865,1,1); int n = diff(1864,2012,3,18); printf("%d\n",n); return 0;}int n = diff(1864,18);// 输出 53768
PS:这里再为大家推荐几款关于日期与天数计算的在线工具供大家使用:
在线日期/天数计算器:
http://tools.jb51.net/jisuanqi/date_jisuanqi
在线万年历日历:
http://tools.jb51.net/bianmin/wannianli
在线阴历/阳历转换工具:
http://tools.jb51.net/bianmin/yinli2yangli
希望本文所述对大家C语言程序设计有所帮助。
总结以上是内存溢出为你收集整理的C语言计算日期差的方法示例全部内容,希望文章能够帮你解决C语言计算日期差的方法示例所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)