如何使用 Python 查找星期一的日期?

pythonserver side programmingprogramming

在本文中,我们将向您展示如何使用 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

结论

在本文中,我们学习了如何使用五个不同的示例来查找星期一日期,以及如何查找下一个和上一个星期一。


相关文章


有用资源