leetcode1360:日期之间隔几天

本文介绍了一个Python程序,用于计算两个给定日期(格式YYYY-MM-DD)之间的天数差。方法是将日期转换为与1970-12-30的天数差,考虑闰年规则。
摘要由CSDN通过智能技术生成

日期之间隔几天

题目

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

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

python代码

class Solution:
    def daysBetweenDates(self, date1: str, date2: str) -> int:
        
        # 计算每个日期与1970-12-30的间隔,然后相减
        spa1 = self.space(date1)
        spa2 = self.space(date2)
        return abs(spa1 - spa2)

    def space(self, date):
        monthday = [31,28,31,30,31,30,31,31,30,31,30,31]
        year, month,day = year, month, day = int(date.split('-')[0]),int(date.split('-')[1]),int(date.split('-')[2])
        # 间隔年份为[1970.year - 1],同时,加上闰年多出来的天数
        days = 0
        days += (year - 1970-1)*365 + (year-1-1968)//4
        days += sum(monthday[:month-1])
        if year%400 == 0 or (year % 4 == 0 and year % 100 !=0 ) and month > 2:
            day += 1
        days += day
        return days
  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值