日期处理

题目描述

有两个日期,求两个日期之间的天数,如果两个日期是连续的,则规定它们之间的天数为两天。

输入格式

有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD。

输出格式

每组数据输出一行,即日期差值。

样例输入

20130101

20130105

样例输出

5

解决代码如下:

 1 #include<stdio.h>
 2 int month[13][2] = {{0, 0}, {31, 31}, {28, 29}, {31, 31}, {30, 30}, {31, 31}, {30, 30}, {31, 31}, {31, 31}, {30, 30},
 3                         {31, 31}, {30, 30}, {31, 31}};
 4 int isLeap(int year)
 5 {
 6     return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
 7 }
 8 int main()
 9 {
10     int time1, y1, m1, d1;
11     int time2, y2, m2, d2;
12     while(scanf("%d%d", &time1, &time2) != EOF)
13     {
14         if(time1 > time2)
15         {
16             int tmp = time1;
17             time1 = time2;
18             time2 = tmp;
19         }
20         y1 = time1/10000, m1 = time1 % 10000 / 100, d1 = time1 % 100;
21         y2 = time2/10000, m2 = time2 % 10000 / 100, d2 = time2 % 100;
22         int ans = 1;
23         while(y1 < y2 || m1 < m2 || d1 < d2)
24         {
25             d1 ++;
26             if(d1 == month[m1][isLeap(y1)] + 1)
27             {
28                 m1++;
29                 d1 = 1;
30             }
31             if(m1 == 13)
32             {
33                 y1++;
34                 m1 = 1;
35             }
36             ans++;
37         }
38         printf("%d\n", ans);
39     }
40     return 0;
41 }

 

上一篇:python-Arduino串口传输数据到电脑并保存至excel表格


下一篇:题解 P5851 [USACO19DEC]Greedy Pie Eaters P