如何使用Python确定上个星期五的日期?
在本文中,我们将学习如何使用Python确定上个星期五的日期。
使用的方法
以下是完成此任务的各种方法。
-
使用datetime模块
-
使用dateutil包
方法1:使用Datetime模块
算法(步骤)
以下是执行所需任务所需遵循的算法/步骤。
-
使用import关键字从datetime模块导入datetime,timedelta。
-
创建一个变量来存储一周中所有天的列表(weekdays)。
-
创建一个函数getPreviousByDay(),通过接受输入日,start_date = None作为参数返回输入日的上一个工作日。
-
使用if条件语句检查起始日期是否为None。
-
将今天的日期(当前日期)分配给起始日期。
-
使用datetime模块的weekday()函数(返回对应于星期几的整数)获取当前星期几的编号。
-
使用index()函数获取目标星期几(给定输入日)的索引。
-
获取从上周开始数的天数。
-
使用if条件语句检查上述天数是否为0,然后将7分配给days ago变量。
-
否则,从当前日期(起始日期)减去上述天数,以获取给定日上一周的日期。
-
返回输入日期上一周的日期。
-
使用datetime的today()函数打印今天/当前的日期和时间。
-
通过将输入日设置为“星期五”作为参数调用上述定义的getPreviousByDay()函数来打印上一个星期五的日期。
-
通过将输入日期设置为“星期一”和“星期三”,通过调用getPreviousByDay()函数来打印上周一和上周三的日期。
示例
以下程序使用datetime模块返回确定上周五/任何日日期。
输出
在执行上述程序后,将生成以下输出 ŌłÆ
方法2:使用Dateutil包
在此代码中,将 开始日期 和 目标日期 映射到它们在星期中对应的数字位置(星期一为 0 )。 然后,采用模运算来确定距离 目标日期 上一次发生的天数。
然后,通过从timedelta实例中减去开始日期来确定目标日期。
如果您经常运行此类日期计算,安装 python-dateutil 包可能更好用。
以下是使用dateutil的 relativedelta() 函数进行相同计算的示例。
dateutil.relativedelta.relativedelta支持按年、月、周或天定义的期间以及定义年、月或日的绝对值的能力,而 timedelta 仅支持天(和周)。
示例
以下程序返回使用 dateutil模块 确定上周星期五日期和下周星期五日期
输出
在执行上述程序后,将生成以下输出 ŌłÆ
结论
在本文中,我们学习了如何使用两种不同的方法在Python中获取上个星期五的日期。我们还实践了如何获取给定输入日期的上一个工作日以及如何检索给定日期的下一个工作日。