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
结论
在本文中,我们学习了使用五个不同的示例来找到周一日期的方法,以及如何找到下一个和上一个周一的方法。
极客笔记