Python代码阅读(第77篇):生成指定日期之间的日期列表

Python代码阅读(第77篇):生成指定日期之间的日期列表

Python 代码阅读合集介绍:为什么不推荐Python初学者直接看项目源码

本篇阅读的代码在日期类型上实现了类似range的功能,生成一个在两个指定日期之间的日期列表。

本篇阅读的代码片段来自于30-seconds-of-python。

daterange

from datetime import timedelta, date

def daterange(start, end):
  return [start + timedelta(n) for n in range(int((end - start).days))]

# EXAMPLES
from datetime import date

daterange(date(2020, 10, 1), date(2020, 10, 5)) 
# [date(2020, 10, 1), date(2020, 10, 2), date(2020, 10, 3), date(2020, 10, 4)]

daterange函数接收一个开始日期和一个终止日期,返回这两个日期之间的日期列表,包括开始日期,不包括终止日期。

函数使用datetime模块里的类型和方法对日期进行处理。

  1. 第一将两个date类型的日期相减,得到timedelta类型的日期差值timedelta = date1 - date2
  2. 然后通过timedeltadays属性获取相差的天数。
  3. 将天数差值转换为int数据后,通过range函数生成一个从零开始的可迭代对象,并用for语句进行访问。
  4. 最后使用date2 = date1 + timedelta的运算形式,通过对开始日期加上相差日期,计算中间的日期。最后形成一个date类型的列表。

具体datetime模块的内容和相关的计算规则可以查看Python的官方文档。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
林浅浅的头像 - 鹿快
评论 共1条

请登录后发表评论

    暂无评论内容