本文實例講述了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.VeVB.COm/jisuanqi/date_jisuanqi
在線萬年歷日歷:
http://tools.VeVB.COm/bianmin/wannianli
在線陰歷/陽歷轉換工具:
http://tools.VeVB.COm/bianmin/yinli2yangli
希望本文所述對大家C語言程序設計有所幫助。
新聞熱點
疑難解答
圖片精選