Python 如何找到只有星期一的日期

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的值赋给一个变量并存储。

  • 通过将weeks设置为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

结论

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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程