[LeetCode 1360]日期之间隔几天

news/2024/11/29 4:40:48/

题目描述

请你编写一个程序来计算两个日期之间隔了多少天。

日期以字符串形式给出,格式为 YYYY-MM-DD,如示例所示。

示例1

输入:date1 = “2019-06-29”, date2 = “2019-06-30”
输出:1

示例2

输入:date1 = “2020-01-15”, date2 = “2019-12-31”
输出:15

提示

给定的日期是 1971 年到 2100 年之间的有效日期。

思路分析:

1.给定的是1971到2100年之间的有效日期,这样字符串处理会方便很多,因为年份长度都为4
2.以1970年为起点,计算当前日期到1970年1月1日的距离,计算两个日期之间的差值,就是他们相差的天数

代码

class Solution {
public:int convert(int year, int month, int day){//记录每月日期数量的数组//一三五七八十腊,三十一天永不差(笑)int mth[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int res = 0;for(int i = 1970; i < year; i++){//判断闰年if(i % 400 == 0 || i % 4 == 0 && i % 100 != 0) res += 366;else res += 365;}for(int i = 1; i < month; i++) res += mth[i];//如果今年是闰年,且月份大于2月,那么就要再+1if((year % 400 == 0 || year %4 == 0 && year % 100 != 0) && month > 2) res++;res += day;return res;}int daysBetweenDates(string date1, string date2) {int year1 = stoi(date1.substr(0, 4)), month1 = stoi(date1.substr(5, 2)), day1 = stoi(date1.substr(8, 2));int year2 = stoi(date2.substr(0, 4)), month2 = stoi(date2.substr(5, 2)), day2 = stoi(date2.substr(8, 2));return abs(convert(year1, month1, day1) - convert(year2, month2, day2));}
};

http://www.ppmy.cn/news/215652.html

相关文章

【信奥赛一本通】 1360:奇怪的电梯(lift)(详细代码)

【图论算法】1360&#xff1a;奇怪的电梯lift 1.【题目描述】2.【代码】 1.【题目描述】 【题目描述】 大楼的每一层楼都可以停电梯&#xff0c;而且第i层楼&#xff08;1≤i≤N&#xff09;上有一个数字Ki(0≤Ki≤N&#xff09;。电梯只有四个按钮&#xff1a;开&#xff0c;…

[HihoCoder]#1360 : 凸多边形

华电北风吹 天津大学认知计算与应用重点实验室 2016-08-14 题目链接&#xff1a; http://hihocoder.com/problemset/problem/1360 题目分析&#xff1a; 动态规划&#xff0c;思路参考Floyd解决所有节点对的最短路径类型的动态规划。 参考代码&#xff1a; #include &l…

Ubuntu永久更改分辨率1360*768

网上可以搜索到Ubuntu添加新分辨率&#xff08;比如没有1360*768通过xrandr自主创建&#xff09;。但这个方法在reboot之后便会失效&#xff0c;通过半晚上的研究&#xff0c;终于发现了能令Ubuntu添加分辨率格式并保持的方法&#xff08;以1360*768为例&#xff09;。事实上&a…

1360:奇怪的电梯(lift)

【题目描述】 大楼的每一层楼都可以停电梯&#xff0c;而且第i层楼&#xff08;1≤i≤N&#xff09;上有一个数字Ki(0≤Ki≤N&#xff09;。电梯只有四个按钮&#xff1a;开&#xff0c;关&#xff0c;上&#xff0c;下。上下的层数等于当前楼层上的那个数字。当然&#xff0c;…

洛谷CF1360E 多边形

洛谷CF1360E 多边形 题目标签标签难度 思路分析思路一 错因分析AC代码 题目标签 CF1360E 标签 模拟 难度 普及/提高- 思路分析 思路一 时间复杂度 O ( n 2 t ) O(n^2t) O(n2t) 说实在&#xff0c;这一题其实很简单。一道纯模拟题。我们先来分析一下题目&#xff1a;“…

1360. 日期之间隔几天

题目描述 请你编写一个程序来计算两个日期之间隔了多少天。日期以字符串形式给出&#xff0c;格式为 YYYY-MM-DD&#xff0c;如示例所示。示例 1&#xff1a;输入&#xff1a;date1 "2019-06-29", date2 "2019-06-30" 输出&#xff1a;1 示例 2&#xf…

一本通1360 奇怪的电梯

1360&#xff1a;奇怪的电梯(lift) 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 4790 通过数: 2047 【题目描述】 大楼的每一层楼都可以停电梯&#xff0c;而且第i层楼&#xff08;1≤i≤N&#xff09;&#xff08;1≤i≤N&#xff09; 上有一个数字Ki(0≤Ki≤…

LeetCode 1360 - 1363

时间之间隔几天 两个日期之间没有大小关系&#xff0c;可能第 1 个日期大&#xff0c;可能第 2 个日期大&#xff0c;需要同时处理两种情况 1971.1.1 → date1 一共过了 days1 天 1971.1.1 → date2 一共过了 days2 天 | day1 - day2 | 就是答案&#xff0c;因为不知道哪个…