如何用Python查找只有星期一的日期?
在本文中,我们将向您展示如何使用Python查找只有星期一的日期。我们将使用不同的方法查找上一个星期一、下一个星期一以及第n个星期一的日期。
使用timedelta()函数
使用relativedelta()函数获取上一个星期一
使用relativedelta()函数获取下一个星期一
使用relativedelta()函数获取下一个第n个星期一
使用timedelta()函数获取上一个第n个星期一
方法一:使用timedelta
算法(步骤)
以下是执行所需任务的算法/步骤:
使用import关键字导入datetime(用于处理Python日期和时间)模块。
使用today()函数(获取当前本地日期)获取今天的当前本地日期并打印它。
通过将weeks作为参数传递给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()函数返回下一个星期一的日期:
# 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
方法二:使用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关键字导入relativedelta,MO来自dateutil模块。
使用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
方法三:使用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
方法四:使用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
方法五:使用timedelta()函数获取上一个第n个星期一
算法(步骤)
以下是执行所需任务的算法/步骤:
给出n的值并将其存储在一个变量中。
通过将weeks作为参数传递给timedelta()函数(值为n),将今天的日期减少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
结论
在本文中,我们学习了如何通过五个不同的例子查找星期一的日期,以及如何查找下一个和上一个星期一。