如何使用 Python 查找星期一的日期?
在本文中,我们将向您展示如何使用 Python 查找星期一的日期。我们使用不同的方法找到上周一、下周一、第 n 个周一的日期−
使用 timedelta() 函数
使用 relativedelta() 函数获取上周一
使用 relativedelta() 函数获取下周一
使用 relativedelta() 函数获取下个第 n 个周一
使用 timedelta() 函数获取前一个第 n 个周一
方法 1:使用 timedelta
算法(步骤)
以下是执行所需任务需要遵循的算法/步骤 -
使用 import 关键字导入 datetime(用于处理 Python 日期和时间)模块。
使用 today() 函数(获取当前本地日期)获取今天的当前本地日期并打印。
通过将周数作为 1 作为参数传递给 timedelta() 函数,将今天的日期增加 1 周。
timedelta()- Python 的 timedelta() 函数在 datetime 库中可用,通常用于计算日期之间的差异。它还可用于在 Python 中操作日期,此函数使用户可以非常轻松地进行此操作。
语法
Datetime.timedelta(days = 0, seconds = 0, microseconds = 0, milliseconds = 0, minutes = 0, hours = 0, weeks = 0)
打印下一个星期一的日期。
示例
以下程序使用 datetime.timedelta() 函数返回下一个星期一的日期−
# importing datetime module import datetime # getting today's date todayDate = datetime.date.today() print('Today Date:',todayDate) # Increment today's date with 1 week to get the next Monday nextMonday = todayDate + datetime.timedelta(days=-todayDate.weekday(), weeks=1) print('Next Monday Date:',nextMonday)
输出
执行时,上述程序将生成以下输出 -
Today Date: 2022-09-07 Next Monday Date: 2022-09-12
方法 2:使用relativedelta() 函数获取上周一
timedelta 仅支持天(和周),而relativedelta 允许年、月、周或天,以及提供年、月或日的绝对值。
relativedelta 的参数数量远比 timedelta 多得多。
relativedelta.relativedelta(self, dt1=None, dt2=None, years=0, months=0, days=0, leapdays=0, weeks=0, hours=0, minutes=0, seconds=0, microseconds=0, year=None, month=None, day=None, weekday=None, yearday=None, nlyearday=None, hour=None, minute=None, second=None, microsecond=None)
算法(步骤)
以下是执行所需任务需要遵循的算法/步骤 -
使用 import 关键字导入 datetime(用于处理日期和时间)模块。
使用 import 关键字从 dateutil 模块导入 relativedelta、MO。
使用 today() 函数(获取当前本地日期)获取今天的当前本地日期并创建一个变量来存储它。
将星期几作为参数传递给 relativedelta() 函数。这里 MO(-1) 表示获取上周一,MO 表示周一。
打印上周一的日期。
示例
以下程序使用 relativedelta() 函数返回上周一的日期−
# importing date from datetime module from datetime import date # importing relativedelta, MO from dateutil from dateutil.relativedelta import relativedelta, MO # getting today's current local date todayDate = date.today() print('Today Date:',todayDate) # Pass MO(-1) as an argument to relativedelta to set weekday as Monday and -1 signifies last week's Monday lastMonday = todayDate + relativedelta(weekday=MO(-1)) # printing the last Monday date print("The last Monday date:", lastMonday)
输出
Today Date: 2022-09-07 The last Monday date: 2022-09-05
方法 3:使用relativedelta()函数获取下周一
与上一种方法类似,但这次我们传递参数 MO(1) 来获取下周一的日期。
示例
# importing date from datetime module from datetime import date # importing relativedelta, MO from dateutil from dateutil.relativedelta import relativedelta, MO # getting today's current local date todayDate = date.today() print('Today Date:',todayDate) # Pass MO(1) as an argument to relativedelta to set weekday as Monday and 1 signifies next week's Monday nextMonday = todayDate + relativedelta(weekday=MO(1)) # printing the Next Monday date print("The Next Monday date:", nextMonday)
输出
Today Date: 2022-09-07 The Next Monday date: 2022-09-12
方法 4:使用relativedelta() 函数获取下一个第 n 个星期一
算法(步骤)
以下是执行所需任务需要遵循的算法/步骤 -
给出 n 的值并将其存储在变量中。
将参数 MO(n) 传递给relativedelta() 函数以获取下一个第 n 个星期一。
打印下一个第 n 个星期一的值。
示例
from datetime import date # importing relativedelta, MO from dateutil from dateutil.relativedelta import relativedelta, MO # Given n n = 4 # getting today's current local date todayDate = date.today() print('Today Date:',todayDate) # Pass MO(n) as an argument to relativedelta to set weekday as Monday and n signifies nth week's Monday nextNthMonday = todayDate + relativedelta(weekday=MO(n)) # printing the given nth Monday date print(n,"th Monday date from today is:",nextNthMonday)
输出
Today Date: 2022-09-07 4 th Monday date from today is: 2022-10-03
方法 5:使用 timedelta() 函数获取前 n 个星期一
算法(步骤)
以下是执行所需任务需要遵循的算法/步骤 -
给出 n 的值并将其存储在变量中。
通过将周数作为 n 作为参数传递给 timedelta() 函数,将今天的日期减去 n 周星期一。
打印前 n 个星期一的值。
示例
# importing datetime module import datetime # getting today's date todayDate = datetime.date.today() # Given n n = 4 print('Today Date:',todayDate) # Decrement today's date with n weeks to get the previous nth Monday previousNthMonday = todayDate - datetime.timedelta(days=-todayDate.weekday(), weeks=n) # printing the given nth Monday date print("Previous",n,"th Monday date from today is:",previousNthMonday)
输出
Today Date: 2022-09-07 Previous 4 th Monday date from today is: 2022-08-12
结论
在本文中,我们学习了如何使用五个不同的示例来查找星期一日期,以及如何查找下一个和上一个星期一。
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

