Leetcode 1360:日期之间隔几天(超详细的解法!!!)
发布日期:2021-06-29 15:58:37 浏览次数:2 分类:技术文章

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

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

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

解题思路

使用datetime的话,只用一行即可。

import datetimeclass Solution:    def daysBetweenDates(self, date1: str, date2: str) -> int:        return abs((datetime.datetime.strptime(date1, '%Y-%m-%d') - datetime.datetime.strptime(date2, '%Y-%m-%d')).days)

实际上这个问题和非常类似,本质都是。思路非常简单,分别计算date1date21971.1.1有多少天,然后相减即可。

class Solution:    def daysBetweenDates(self, date1: str, date2: str) -> int:        days = [31,28,31,30,31,30,31,31,30,31,30,31]        def check(Y):            return Y % 4 == 0 and (Y % 100 != 0 or Y % 400 == 0)                def days_from_1971(date):            Y, M, D = list(map(int, date.split("-")))                        for i in range(1971, Y):                D += 366 if check(i) else 365            return D + (M > 2 and check(Y)) + sum(days[:M - 1])        return abs(days_from_1971(date1) - days_from_1971(date2))

reference:

https://leetcode.com/problems/number-of-days-between-two-dates/discuss/517605/Similar-to-day-of-the-year

我将该问题的其他语言版本添加到了我的

如有问题,希望大家指出!!!

转载地址:https://coordinate.blog.csdn.net/article/details/104463290 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Leetcode 1361:验证二叉树(超详细的解法!!!)
下一篇:两个方法:读取txt文件转为String,在将map输出为txt并按value降序排序

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月30日 12时43分01秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章