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

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

在本文中,我们将展示如何使用python仅找到星期一的日期。我们使用不同的方法找到上一次星期一、下一次星期一、第n次星期一的日期−

  • 使用timedelta()函数

  • 使用relativedelta()函数获取上周一

  • 使用relativedelta()函数获取下周一

  • 使用relativedelta()函数获取下周一

  • 使用timedelta()函数获取前n个星期一

阅读更多:Python 教程

方法1:使用timedelta

算法(步骤)

以下是执行所需任务的算法/步骤−

  • 使用import关键字导入datetime(用于处理日期和时间)模块。

  • 使用today()函数(获取当前本地日期)获取今天的当前本地日期并打印它。

  • 通过将周数作为timedelta()函数的参数之一并将其设置为1来将今天的日期递增1周。

**timedelta** ()- Python的 **timedelta** ()函数可在datetime库中使用,通常用于计算日期之间的差异。它还可以用于在Python中操作日期,这个函数让用户很容易地这样做。

语法

Datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
  • 打印下一个星期一的日期。

示例

以下程序使用datetime.timedelta()函数返回下一个星期一的日期−

# 导入datetime模块
import datetime

# 获取今天的日期
todayDate = datetime.date.today()
print('今天的日期:',todayDate)

# 将今天的日期递增1周以获取下周一
nextMonday = todayDate + datetime.timedelta(days=-todayDate.weekday(), weeks=1)
print('下一周一的日期:',nextMonday)

输出

执行上述程序后,将生成以下输出−

今天的日期:2022-09-07
下一周一的日期: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()函数返回上周一的日期:

 # 从datetime模块导入日期
from datetime import date

 # 从dateutil中导入相对时间和MO
from dateutil.relativedelta import relativedelta, MO

 # 获取今天的当前本地日期
todayDate = date.today()
 print('Today Date:',todayDate)

 # 将MO(-1)作为参数传递给relativedelta,将工作日设置为星期一,-1表示上周的星期一
lastMonday = todayDate + relativedelta(weekday=MO(-1))

 # 打印上周一的日期
 print("The last Monday date:", lastMonday)

输出

Today Date: 2022-09-07
The last Monday date: 2022-09-05

方法3:使用relativedelta()函数获取下周一的日期

这与前一种方法类似,但是这次我们将参数MO(1)传递给函数以获取下周一的日期。

例子

# 从datetime模块导入日期
from datetime import date

# 从dateutil中导入相对时间和MO
from dateutil.relativedelta import relativedelta, MO

# 获取今天的当前本地日期
todayDate = date.today()
 print('Today Date:',todayDate)

 # 将MO(1)作为参数传递给relativedelta,将工作日设置为星期一,1表示下周的星期一
nextMonday = todayDate + relativedelta(weekday=MO(1))

# 打印下周一的日期
 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()函数,以获取下一个星期一。
  • 打印下一个星期一的值。

例子

# 从datetime模块导入日期
from datetime import date

# 从dateutil中导入相对时间和MO
from dateutil.relativedelta import relativedelta, MO

# 获取今天的当前本地日期
todayDate = date.today()
 print('Today Date:',todayDate)

 # 定义n的值
n = 2

# 将MO(n)作为参数传递给relativedelta,以获取下2个星期一的日期
nextNMonday = todayDate + relativedelta(weekday=MO(n))

# 打印下2个星期一的日期
 print("The next {} Monday date:".format(n), nextNMonday)

输出

Today Date: 2022-09-07
The next 2 Monday date: 2022-09-19
from datetime import date
# 导入relativedelta和MO,从dateutil库中
from dateutil.relativedelta import relativedelta, MO

# 给定n
n = 4

# 获取当前日期
todayDate = date.today()
print('今天的日期:',todayDate)

# 将MO(n)作为参数传递给relativedelta,将周日设置为星期一,其中n表示第n个星期一
nextNthMonday = todayDate + relativedelta(weekday=MO(n))

# 打印给定的第n个星期一的日期
print(n,"天后的第n个星期一的日期是:",nextNthMonday)

输出

今天的日期: 2022-09-07
4 天后的第n个星期一的日期是: 2022-10-03

方法5:使用timedelta()函数来获取前n个星期一

算法(步骤)

要执行所需任务,请按以下算法/步骤进行操作−

  • 给变量赋值n的值。

  • 通过将周数传递为n的argumnet来使用timedelta()函数将今天的日期减去n周的星期一日期。

  • 打印前n个星期一的日期的值。

# 导入datetime库
import datetime

# 获取今天的日期
todayDate = datetime.date.today()

# 给定n
n = 4
print('今天的日期:',todayDate)

# 将今天的日期减去n周以获取前n个星期一的日期
previousNthMonday = todayDate - datetime.timedelta(days=-todayDate.weekday(), weeks=n)

# 打印给定的第n个星期一的日期
print("前",n,"天前的第n个星期一的日期是:",previousNthMonday)

输出

今天的日期: 2022-09-07
前 4 天前的第n个星期一的日期是: 2022-08-12

结论

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程