Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >LeetCode 1360. 日期之间隔几天(闰年判断)

LeetCode 1360. 日期之间隔几天(闰年判断)

作者头像
Michael阿明
发布于 2020-07-13 08:00:57
发布于 2020-07-13 08:00:57
89300
代码可运行
举报
运行总次数:0
代码可运行

1. 题目

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
示例 1:
输入:date1 = "2019-06-29", date2 = "2019-06-30"
输出:1

示例 2:
输入:date1 = "2020-01-15", date2 = "2019-12-31"
输出:15 

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

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/number-of-days-between-two-dates 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 闰年判断条件:被4整除但不能被100,或者能被400整除
  • (year%4 == 0 && year%100 != 0) || year%400 == 0 是闰年
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Solution {
	vector<int> month = {0,31,28,31,30,31,30,31,31,30,31,30,31};
public:
    int daysBetweenDates(string date1, string date2) {
    	if(date1 == date2)
    		return 0;
    	if(date1 > date2)
    		swap(date1, date2);
    	int days = 0, y1, m1, d1, y2, m2, d2, i;
    	y1 = (date1[0]-'0')*1000+(date1[1]-'0')*100+(date1[2]-'0')*10+date1[3]-'0';
    	m1 = (date1[5]-'0')*10+date1[6]-'0';
    	d1 = (date1[8]-'0')*10+date1[9]-'0';
    	y2 = (date2[0]-'0')*1000+(date2[1]-'0')*100+(date2[2]-'0')*10+date2[3]-'0';
    	m2 = (date2[5]-'0')*10+date2[6]-'0';
    	d2 = (date2[8]-'0')*10+date2[9]-'0';
    	for(i = 1; i < m1; i++)
    		days -= month[i];
    	if(isleapyear(y1) && m1>2)
    		days--;//闰年2月29天
    	days -= d1;
    	for(i = y1; i < y2; ++i)
    		days += isleapyear(i) ? 366 : 365;
    	for(i = 1; i < m2; i++)
    		days += month[i];
    	if(isleapyear(y2) && m2>2)
    		days++;
    	days += d2;
    	return days;
    }

    bool isleapyear(int& year)
    {
    	if((year%4 == 0 && year%100 != 0) || year%400 == 0)
    		return true;
    	return false;
    }
};
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/02/23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
【LeetCode第 177 场周赛】5169. 日期之间隔几天
输入:date1 = "2019-06-29", date2 = "2019-06-30" 输出:1 示例 2:
韩旭051
2020/06/23
8970
力扣 第 177 场周赛 题解
2个月前攒够了衣服就没打了,重新捡起来,被吊打。。 在这里插入图片描述 日期之间隔几天 题面: 第一题 思路:主要是考虑一下闰年和平年,以及每个月有多少天,简单的模拟题。 代码: bool runni
BBuf
2020/02/26
3960
【OJ】日期差值与日期累加
日期之间比较可能会出现给的两个年月日都不相同,这个就不好作差,每个月给的天数不同,还有可以是闰年,得先判断一下是不是闰年,这里就写一个判断闰年的函数:
zxctscl
2024/03/08
1620
【OJ】日期差值与日期累加
【算法】日期问题(C/C++)
日期问题在算法初学时,可所谓屡见不鲜。因为算法初学者在写算法入门题时,会发现做的最多的题就是模拟题,那么模拟题最喜欢的出的就是日期问题。日期问题分为好几个具体的问题,比如:闰年判断、回文日期、日期差值等。本篇博客会带领大家详细讲解日期问题。
摆烂小白敲代码
2024/11/24
2610
【算法】日期问题(C/C++)
2018四川省大学程序设计竞赛(ACM) E: Ever17 ----------------------C语言——菜鸟级
Description As is known to all, we have two formats to denote a specific date: MM/DD/YY or YY/MM/DD. We supposed the years discussed below are years in 20YY.
Fivecc
2022/11/21
2540
AcWing 3498. 日期差值(每日一题)
有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天。
摆烂小白敲代码
2024/09/23
850
日期差值
题目描述: 有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天 输入: 有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD 输出: 每组数据输出一行,即日期差值 样例输入: 20110412 20110422 样例输出: 11 来源:2009年上海交通大学计算机研究生机试真题 #include <iostream> using namespace std; #define ISYEAR(x) x%100 != 0 && x%4 == 0 || x%400
用户1631856
2018/04/12
1.1K0
Codeup1928 日期差值
时间限制 : 1.000 sec 内存限制 : 32 MB 解决 : 2553 提交 : 11187
种花家的奋斗兔
2020/11/13
5390
如何计算两个日期之间的天数
SELECT DATEDIFF("2089-10-01","2008-08-08") AS "北京奥运会开幕式天数"
fliter
2024/02/05
5500
如何计算两个日期之间的天数
算法0基础刷题——日期计算
间隔天数 要求返回某年某日与某年某日的间隔天数,和上面的类似,多加了年份天数的计算。 坑:计算日子的差值要用到绝对值
秋名山码神
2022/12/13
4870
java countdowntimer_Android 倒计时CountDownTimer[通俗易懂]
可能在没有遇到CountDownTimer之前,我们都是创建Handle来开启异步线程来处理,如果你现在使用,我只能说太菜了,官方已经为我们封装好了一个类,爽的很,一起来看
全栈程序员站长
2022/10/02
7550
C++笔记(7)——一些模拟题:简单模拟、查找元素、图形输出、日期处理、进制转换、字符串处理
以下内容基本来自《算法笔记》,作者为胡凡,建议直接买书看,我这里只是摘抄部分当笔记,不完整的。
太阳影的社区
2021/10/15
3470
Acwing枚举、模拟与排序(二)
cin和scanf都不会干掉第一行的回车。 在这些函数执行完成之后,执行getline之前,多执行一次getline:去掉回车。
WuShF
2024/03/08
1190
VBA代码库12:处理日期和时间
本文中的代码来自于www.cpearson.com,特辑录于此,方便在需要时参考。
fanjy
2021/07/12
1.8K0
力扣(LeetCode)刷题,简单题(第24期)
力扣(LeetCode)定期刷题,每期10道题,业务繁重的同志可以看看我分享的思路,不是最高效解决方案,只求互相提升。
不脱发的程序猿
2021/01/20
2400
Python处理日期方法大全、三十种方法
Python学习者
2023/12/12
2030
Java---对象与类的封装
一、类和对象: package cn.hncu.Myclasslearn; /** * * @author hncu_chx * * Mylove amin */ /**类是一种数据类型,声明一个类就是定义了一个数据类型。 类的实例(instance)是类的取值,对象就是类的变量,一个对象能引用一个实例, 就像一个int变量i能够保存int类型的一个常数。 声明对象: 类 对象 MyDate d1;//声明d1是MyDate类的一个对象 **/ publ
谙忆
2021/01/20
5210
Java---对象与类的封装
回文日期
Origin Link 思想: 字符串模拟。 对于第一个符合要求的年份,可以暴力枚举日期进行判断。 第二个年份,需要保证 ABABBABA 的形式,则只需枚举 AB 即可。 代码: #include<bits/stdc++.h> using namespace std; int y[2][13] = {{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {0, 31, 29, 31, 30, 31, 30, 31, 3
浪漫主义狗
2023/02/16
3920
Java学习笔记——Java常用类
String是一个final类,代表不可变的字符序列,底层使用char[]存放。一个字符串对象一旦被配置,其内容是不可变的。
梦飞
2022/06/23
4400
又肝了3天,整理了80个Python DateTime 例子,必须收藏!
日常工作中,用 Python 处理时间格式的数据是非常常见的,今天就来分享 DateTime 相关的示例
周萝卜
2021/10/25
9K0
相关推荐
【LeetCode第 177 场周赛】5169. 日期之间隔几天
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验