Python 实现不使用语言自带的函数计算两个日期的差值
程序员文章站
2024-03-19 22:44:46
...
题目:
写一个函数,输入是两个日期,输出是这两个日期的日差。
例如:输入是20190102和20190103,输出是1
要求:
1、不能使用系统自带函数直接减
2、不能使用时间戳
3、日期格式是字符串类似2019-01-02格式,只考虑四位字符年份
所有代码均可在Github中找到:
# -*- coding:utf-8 -*-
__author__ = 'yangxin_ryan'
"""
Solutions:
题目:
写一个函数,输入是两个日期,输出是这两个日期的日差。
例如:输入是20190102和20190103,输出是1
要求:
1、不能使用系统自带函数直接减
2、不能使用时间戳
3、日期格式是字符串类似2019-01-02格式,只考虑四位字符年份
解题分析:
此题目由于要求必须不能使用自带的方法,那么我就可以考虑拆分年、月、日分别来计算
那么年份所影响的条件有 闰年 与 非闰年。
因此我们就要分两种情况来考虑:
1.同年 -> 差值为 0;
2.非同年 -> 差值为非 0;
最后分年、月、日计算对应的差值 * 天数即可;
"""
class DateSub(object):
def is_leap_year(self, year):
"""
判断是否是闰年
:param year:
:return:
"""
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
return True
else:
return False
def date_sub(self, date1, date2):
"""
计算两个日期的差值,考虑是否包含闰年
:param date