ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

日期处理

2019-07-16 16:03:19  阅读:294  来源: 互联网

标签:处理 31 30 time1 time2 int 日期 m1


题目描述

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

输入格式

有多组数据,每组数据有两行,分别表示两个日期,形式为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 }

 

标签:处理,31,30,time1,time2,int,日期,m1
来源: https://www.cnblogs.com/narnia/p/11195378.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有