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

1. 题目

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

日期以字符串形式给出,格式为 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 年之间的有效日期。

来源:力扣(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 是闰年
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;}
};

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/477250.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

“我要做小小瑶大人的狗!”

小轶&#xff1a;这真的是白鹡鸰写的作为21世纪新时代人格健全&#xff0c;精神独立&#xff0c;心理健康的有志青年&#xff0c;总有那么几个时刻&#xff0c;会让我们情不自禁&#xff0c;眼泪从嘴角流下地呐喊着&#xff1a;“我是XXX的狗&#xff01;”啊&#xff01;这诚恳…

Spring Boot中的缓存支持(一)注解配置与EhCache使用

随着时间的积累&#xff0c;应用的使用用户不断增加&#xff0c;数据规模也越来越大&#xff0c;往往数据库查询操作会成为影响用户使用体验的瓶颈&#xff0c;此时使用缓存往往是解决这一问题非常好的手段之一。Spring 3开始提供了强大的基于注解的缓存支持&#xff0c;可以通…

LeetCode 1361. 验证二叉树(图的出入度)

1. 题目 二叉树上有 n 个节点&#xff0c;按从 0 到 n-1 编号&#xff0c;其中节点 i 的两个子节点分别是 leftChild[i] 和 rightChild[i]。 只有 所有 节点能够形成且 只 形成 一颗 有效的二叉树时&#xff0c;返回 true&#xff1b;否则返回 false。 如果节点 i 没有左子节…

微软:我已把显存优化做到了极致,还有谁?

文 | 王思若大家好&#xff0c;我是王思若。17年6月Google提出了Transformer架构&#xff0c;这篇目前Citation 4.3万的文章开启了大规模预训练模型时代。或者&#xff0c;更精确的从18年OpenAI和Google分别基于其中的Decoder和Encoder发布的大规模预训练模型GPT1和BERT开始&am…

Spring Boot中使用JavaMailSender发送邮件

相信使用过Spring的众多开发者都知道Spring提供了非常好用的JavaMailSender接口实现邮件发送。在Spring Boot的Starter模块中也为此提供了自动化配置。下面通过实例看看如何在Spring Boot中使用JavaMailSender发送邮件。 快速入门 在Spring Boot的工程中的pom.xml中引入sprin…

LeetCode 1362. 最接近的因数

1. 题目 给你一个整数 num&#xff0c;请你找出同时满足下面全部要求的两个整数&#xff1a; 两数乘积等于 num 1 或 num 2以绝对差进行度量&#xff0c;两数大小最接近 你可以按任意顺序返回这两个整数。 示例 1&#xff1a; 输入&#xff1a;num 8 输出&#xff1a;[3…

光子神经网络登上nature,图像识别速度降至1纳秒

文 | Alex&#xff08;凹非寺&#xff09;源 | 量子位比深度神经网络速度还快的是什么&#xff1f;或许光子DNN可以回答这个问题。现在&#xff0c;美国研究者开发的一个光子神经网络(photonic deep neural network&#xff0c;PDNN)&#xff0c;让图像识别仅需1纳秒。1纳秒是什…

LeetCode 1363. 形成三的最大倍数(贪心,难)

1. 题目 给你一个整数数组 digits&#xff0c;你可以通过按任意顺序连接其中某些数字来形成 3 的倍数&#xff0c;请你返回所能得到的最大的 3 的倍数。 由于答案可能不在整数数据类型范围内&#xff0c;请以字符串形式返回答案。 如果无法得到答案&#xff0c;请返回一个空…

Spring Boot中使用Spring Security进行安全控制

我们在编写Web应用时&#xff0c;经常需要对页面做一些安全控制&#xff0c;比如&#xff1a;对于没有访问权限的用户需要转到登录表单页面。要实现访问控制的方法多种多样&#xff0c;可以通过Aop、拦截器实现&#xff0c;也可以通过框架实现&#xff08;如&#xff1a;Apache…

这篇寒门博士论文致谢火了:回首望过去,可怜无数山

源 | 奔流新闻兰州晨报 记者 邢剑扬、安之若素德之至 微信平台、澎湃新闻“可怜无数山”近日&#xff0c;一位甘肃籍博士的论文致谢和回望“火”了&#xff0c;有网友称读后“泪眼婆娑&#xff0c;戳到了灵魂”&#xff0c;也有网友评价“一字一句&#xff0c;熠熠生辉”。“回…

Spring Boot中的事务管理

什么是事务&#xff1f; 我们在开发企业应用时&#xff0c;对于业务人员的一个操作实际是对数据读写的多步操作的结合。由于数据操作在顺序执行的过程中&#xff0c;任何一步操作都有可能发生异常&#xff0c;异常会导致后续操作无法完成&#xff0c;此时由于业务逻辑并未正确…

C++类对象排序operator重载操作

类内默认含有this指针&#xff0c;bool operator(const T& a)类外则需要写两个参数&#xff0c;bool operator(const T& a, const T& b) class People { public:string name;int id;People(string n, int i):name(n),id(i){}bool operator(const People& a){r…

鹅厂计算机视觉,世界第二??

编 | 好困 桃子源 | 新智元腾讯的计算机视觉能力首次进入全球Top2的评分排名&#xff01;Gartner最新发布的2022年度《Magic Quadrant for Cloud AI Developer Services》是业内权威的云计算评估报告之一&#xff0c;评估对象包括亚马逊、微软、谷歌等全球云厂商。在核心产品能…

Spring Boot中使用log4j实现http请求日志入mongodb

之前在《使用AOP统一处理Web请求日志》一文中介绍了如何使用AOP统一记录web请求日志。基本思路是通过aop去切web层的controller实现&#xff0c;获取每个http的内容并通过log4j将日志内容写到应用服务器的文件系统中。 但是当我们在集群中部署应用之后&#xff0c;应用请求的日…

程序员面试金典 - 面试题 01.02. 判定是否互为字符重排(哈希map)

1. 题目 给定两个字符串 s1 和 s2&#xff0c;请编写一个程序&#xff0c;确定其中一个字符串的字符重新排列后&#xff0c;能否变成另一个字符串。 示例 1&#xff1a; 输入: s1 "abc", s2 "bca" 输出: true 示例 2&#xff1a; 输入: s1 "abc&…

破局数据困境,迭代一年的终版解决方案竟是纯规则方法!

文 | Severus大家好&#xff0c;我是Severus&#xff0c;一个致力于做好中文自然语言理解的老程序员。一年前&#xff0c;我在萌屋的第一篇推文&#xff08;在错误的数据上&#xff0c;刷到 SOTA 又有什么意义&#xff1f;&#xff09;中&#xff0c;重点讲述了关系抽取任务所面…

程序员面试金典 - 面试题 01.03. URL化(字符串)

1. 题目 URL化。编写一种方法&#xff0c;将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符&#xff0c;并且知道字符串的“真实”长度。&#xff08;注&#xff1a;用Java实现的话&#xff0c;请使用字符数组实现&#xff0c;以便直接在数组上操作。…

扩散模型又杀疯了!这一次被攻占的领域是...

文 | Yimin_饭煲从2020年的初出茅庐&#xff0c;到2021年的日趋火热&#xff0c;再到2022年的大放异彩&#xff0c;扩散模型(Diffusion Models) 正在人工智能学术界和工业界获取越来越多的关注。如果还不是特别了解扩散模型的朋友&#xff0c;可以阅读卖萌屋的几篇历史推文《扩…

程序员面试金典 - 面试题 01.04. 回文排列(哈希map)

1. 题目 给定一个字符串&#xff0c;编写一个函数判定其是否为某个回文串的排列之一。 回文串是指正反两个方向都一样的单词或短语。排列是指字母的重新排列。 回文串不一定是字典当中的单词。 示例1&#xff1a; 输入&#xff1a;"tactcoa" 输出&#xff1a;tru…

Spring Boot中对log4j进行多环境不同日志级别的控制

之前介绍了在《Spring boot中使用log4j记录日志》&#xff0c;仅通过log4j.properties对日志级别进行控制&#xff0c;对于需要多环境部署的环境不是很方便&#xff0c;可能我们在开发环境大部分模块需要采用DEBUG级别&#xff0c;在测试环境可能需要小部分采用DEBUG级别&#…