博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
日期差值计算
阅读量:3760 次
发布时间:2019-05-22

本文共 2037 字,大约阅读时间需要 6 分钟。

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

样例输入

20130101
20130105

样例输出

5

#include 
#include
using namespace std;bool isLeapYear(int year) { if (year%400==0 || (year%4==0 && year%100!=0)) { return true; } return false;}void split(int date, int &y, int &m, int &d) { y = date/10000; m = (date%10000)/100; d = date%100;}int dayOfYear(int date) { int year, month, day; int res = 0; split(date, year, month, day); if (isLeapYear(year)) { switch(month) { case 12: res += 30; case 11: res += 31; case 10: res += 30; case 9: res += 31; case 8: res += 31; case 7: res += 30; case 6: res += 31; case 5: res += 30; case 4: res += 31; case 3: res += 29; case 2: res += 31; case 1: res += day; break; } } else { switch(month) { case 12: res += 30; case 11: res += 31; case 10: res += 30; case 9: res += 31; case 8: res += 31; case 7: res += 30; case 6: res += 31; case 5: res += 30; case 4: res += 31; case 3: res += 28; case 2: res += 31; case 1: res += day; break; } } return res;}int main() { int date1, y1, m1, d1; int date2, y2, m2, d2; cin >> date1; cin >> date2; if (date1 > date2) { date1 = date1 ^ date2; date2 = date1 ^ date2; date1 = date1 ^ date2; } split(date1, y1, m1, d1); split(date2, y2, m2, d2); int res = 1; for (int i = y1; i < y2; i++) { if (isLeapYear(i)) { res += 366; } else { res += 365; } } res -= dayOfYear(date1); res += dayOfYear(date2); cout << res << endl; return 0;}

转载地址:http://iicpn.baihongyu.com/

你可能感兴趣的文章
ANSYS——杆单元简介与示例(含新版本2019版本杆实常数设置、ANSYS help的使用、单元列表使用的举例)
查看>>
ANSYS——后处理中单元表(ELEMENT table)的作用、创建、使用
查看>>
在VScode上配置golang的开发环境
查看>>
leetcode每日一题---680. 验证回文字符串 Ⅱ
查看>>
leetcode每日一题---15. 三数之和
查看>>
leetcode每日一题---面试题 16.18. 模式匹配
查看>>
地主的钱袋
查看>>
招新成绩统计
查看>>
webpack
查看>>
go部署
查看>>
配置swagger--go语言
查看>>
打印杨辉三角
查看>>
java中String类中常用方法
查看>>
flutter学习笔记:第一个APP应用
查看>>
哲学家进餐问题
查看>>
Python-Opencv学习总结(一):图像读取和获取图像特征
查看>>
实验十三:导出与导入
查看>>
第十五周.
查看>>
基于MVC模式的用户登录
查看>>
Java Swing搭建QQ登录界面
查看>>