本文实例讲述了C语言计算日期差的方法。分享给大家供大家参考,具体如下:
历史上,不同的人类聚居地可能有不同的历法,因而记录下来的资料中日期的换算就很麻烦。幸好今天我们统一使用公元纪年法。当然,这种历法对求两个日期差多少天也不是十分简便,但毕竟是可以忍受的。
下面的程序计算了两个日期的差值,两个日期都使用公元纪年法。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#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 |
希望本文所述对大家C语言程序设计有所帮助。