有时候需要算两个日期相差多少天,如果两个日期相差大,真的去数肯定很麻烦,还得计算有的是有三十天,有的是三十一天,还有闰年和平年的区别。而这时候如果有一个方法或者函数,只需要输入要计算的两个日期即可,那就方便快捷了很多。
首先导入需要用到的时间和日期库,创建日期相差的方法函数:
import datetime
def count_differ_days(self, time_a, time_b):
"""
计算日期相差天数
"""
# 因为得到的是UTC时间,所以需要UTC时间+8
time_a = time_a + (hours=8)
time_b = time_b + (hours=8)
d1 = (time_a.year, time_a.month, time_a.day)
d2 = (time_b.year, time_b.month, time_b.day)
return (d1 - d2).days
注意:因为只是以年/月/日为单位计算的,所以没有涉及到小时/分/秒 ,并不是以24小时为单位去计算,而是直接按照日期里的相差天数计算,没有时间差的BUG问题
(例:2021年10月22日1时0分0秒 与 2021年10月21日16时0分0秒相减,如果以24小时为单位进行运算,就会造成2021年10月21日16时0分0秒那一天在16:00之前的所有时间点不算在一天之内,是不符合结果预期的)
所以本方法,以日期直接计算,可以完美解决以上BUG冲突,