1 /*
 2 题目描述
 3
 4 有两个日期,求两个日期之间的天数,如果两个日期是连续的,则规定它们之间的天数为两天。
 5 输入格式
 6
 7 有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD
 8 输入格式
 9
10 每组数据输出一行,即日期差值
11 样例输入
12
13 20130101
14 20130105
15 样例输出
16
17 5
18
19 思路
20 不妨假设第一个日期早于第二个日期(否则交换即可)
21 这种求
22 */
23
24 #include <iostream>
25 #include <stdio.h>
26 #include <stdbool.h>
27 int month[13][2]={ //平年和闰年的每个月的天数
28 {0, 0}, {31, 31}, {28, 29}, {31, 31}, {30, 30}, {31, 31},{30, 30},
29 {31, 31}, {31, 31}, {30, 30}, {31, 31}, {30, 30}, {31, 31}
30 };
31     bool isLeap(int year){ //判断是否是闰年
32     return ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0));
33     }
34     int main(){
35     int time1, y1, m1, d1;
36     int time2, y2, m2, d2;
37    while (scanf("%d%d", &time1, &time2) != EOF) {
38     if (time1 > time2) { //第一个日期晚于第二个日期,则交换
39     int temp = time1;
40     time1 = time2;
41     time2 = temp;
42     }
43  y1 = time1 / 10000, m1 = time1 % 10000 / 100, d1 = time1 % 100;
44  y2 = time2 / 10000, m2 = time2 % 10000 / 100, d2 = time2 % 100;
45  int ans = 1; //记录结果
46 //即!((y1 == y2)) && (m1 == m2) && (d1 == d2))
47 while (y1 < y2 || m1 < m2 || d1 < d2) {
48     d1++; //天数加1
49 if(d1 == month[m1][isLeap(y1)] + 1){ //满当月天数
50     m1++; //日期变为下个月的1号
51     d1 = 1;
52     }
53 if (m1 == 13) { //月份满12个月
54     y1++; //日期变为下一年的1月
55     m1 = 1;
56             }
57     ans++; //累计
58         }
59 printf("%d\n", ans); //输出结果
60     }
61 return 0;
62 }

转载于:https://www.cnblogs.com/z-712/p/7324037.html

B1928 日期差值相关推荐

  1. (C++)设计一个程序能计算一个日期加上若干天后是什么日期and计算日期差值

    输入第一行表示样例个数m,接下来m行每行四个整数分别表示年月日和累加的天数. 输出m行,每行按yyyy-mm-dd的个数输出. #include<cstdio>//判断是否是闰年 bool ...

  2. Android 获取当前日期距离过期时间的日期差值的完整方法直接使用

    /*** * 获取当前日期距离过期时间的日期差值 * @param endTime * @return */public String dateDiff(String endTime) { Strin ...

  3. code1928: 日期差值 技巧模拟

    1928: 日期差值 时间限制: 1 Sec 内存限制: 32 MB 题目描述 有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天. 输入 有多组数据,每组数据有两行, ...

  4. 日期处理——日期差值

    题目描述 有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天. 输入 有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD 输出 每组数据输出一行,即日 ...

  5. 【日期类问题】例2.1日期差值

    二 日期类问题 此类问题解题思路: 定一个锚点日期,如0年1月1日,先算出往后多少年内每一日子距离这个锚点的天数,例如要算两个日期间天数时,便可以将两个日期距离锚点日期之间的天数相减,即可得到. 题目 ...

  6. JS-计算日期差值;计算日期之间的月数

    计算两天之间的日期差值 // 输入格式:yyyy-MM-DD function daysBetween(sDate1, sDate2) {//Date.parse() 解析一个日期时间字符串,并返回1 ...

  7. lua 计算日期差值 计算时间戳日期差

    lua 计算日期差值 背景:最近接触的项目在用lua所以也来发一个 可能其他朋友需要的function 不废话 ,上代码,需要的小伙伴拿去吧,如果还有小伙伴有更好的方案可以. 此方案也是从网络上搜到的 ...

  8. 【Codeup1928 】日期差值

    题目描述 有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天. 输入格式 有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD. 输出格式 每组数据输出 ...

  9. 考研机试真题 日期差值 模拟

    考研机试真题 日期差值 模拟 注意方法二中sscanf的用法 方法一: #include<cstdio> #include<cmath> #include<iostrea ...

最新文章

  1. 转载--redis密码管理
  2. The Right-angled Triangles
  3. 对OIM Web(UI)层进行压力测试
  4. 1959: 图案打印
  5. 好看的某云紫色渐变HTML网站源码
  6. GIT 学习笔记 - 20181201
  7. sqlserver 中的GUID 全局唯一标识 -摘自网络
  8. Android View 绘制流程
  9. 微信小程序云开发教程-分页查询
  10. C++简介(5)STL
  11. 2021年基于B/S的高校学生选课管理系统
  12. 基于CANdelaStudio制作CDD流程概述
  13. 英语发音规则---ea字母组合发音规律
  14. xubuntu language support
  15. mysql linux-syn25000是什么_Linux使用awl0.2进行局域网SYN进行洪水ATT
  16. Docker网络、容器编排
  17. Flutter 组件之AlertDialog、SimpleDialog、showModalBottomSheet、showToast、自定义Dialog
  18. 谈谈我的佛系增长之道
  19. 实现.KML和.KMZ 文件的下载
  20. python 06 基本数据类型 tuple

热门文章

  1. oracle重命名日志成员出错,Oracle日志文件
  2. 方式程0day MS17-010远程溢出漏洞测试
  3. Linux 创建交换(swap)分区
  4. 字符串相乘(大数相乘)
  5. 【c++】为什么类中静态(static)成员不能在类的定义内初始化?
  6. 8086汇编-做1到100的加法并显示结果
  7. 沙老师的作业系列——Crackme3
  8. arcgis python脚本实现从界面选择输入输出_ArcGIS Python脚本使用
  9. mysql select查询2个表_mysql – 为SELECT查询合并2个表?
  10. Git-rebase 小筆記