Python 每个月的第二个星期二
如何获得本月第二个上周二的日期Python 每个月的第二个星期二,python,datetime,calendar,Python,Datetime,Calendar,如何获得本月第二个上周二的日期 import calendar todayyear= date.datetime.today().year todayday = date.datetime.today().day c = calendar.TextCalendar(calendar.SUNDAY) str = c.formatmonth(todayyear,todayday) print(str) October 2020 Su Mo Tu We Th Fr Sa
import calendar
todayyear= date.datetime.today().year
todayday = date.datetime.today().day
c = calendar.TextCalendar(calendar.SUNDAY)
str = c.formatmonth(todayyear,todayday)
print(str)
October 2020
Su Mo Tu We Th Fr Sa
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
我需要打印出本月第二个上周二的日期,在这个特殊情况下是20号,但它应该适用于任何月份。请告知如何做到这一点 你可以试试这个
weeks=str.split('\n')
if len(weeks[-1].split())<3: print(weeks[-3][2])
else: print(weeks[-2][2])
weeks=str.split('\n')
如果len(weeks[-1].split())你可以试试这个
weeks=str.split('\n')
if len(weeks[-1].split())<3: print(weeks[-3][2])
else: print(weeks[-2][2])
weeks=str.split('\n')
如果len(周[-1].split())去救援
您将需要执行以下操作:
获取当月的最后日期
使用相对detla将该日期转换为一天
按日期将一天倒推到星期二(这是一个月的最后一个星期二)
从该日期减去一周
正如你所知道的,小心营救的日期
您将需要执行以下操作:
获取当月的最后日期
使用相对detla将该日期转换为一天
按日期将一天倒推到星期二(这是一个月的最后一个星期二)
从该日期减去一周
正如你所知道的,小心日期和日期,你似乎可以从中获取所有日期,并按日期和月份进行过滤。然后用[-2]
import calendar
c = calendar.Calendar()
year = 2020
day = 1
for month in range(1, 13):
secondLastTues = list(filter(lambda d:d[3] == day and d[1] == month,
c.itermonthdays4(year, month)))[-2]
print(secondLastTues)
结果:
(2020, 1, 21, 1)
(2020, 2, 18, 1)
(2020, 3, 24, 1)
(2020, 4, 21, 1)
(2020, 5, 19, 1)
(2020, 6, 23, 1)
(2020, 7, 21, 1)
(2020, 8, 18, 1)
(2020, 9, 22, 1)
(2020, 10, 20, 1)
(2020, 11, 17, 1)
(2020, 12, 22, 1)
看起来你可以从中获取所有的日期,并按日期和月份进行过滤。然后用[-2]
import calendar
c = calendar.Calendar()
year = 2020
day = 1
for month in range(1, 13):
secondLastTues = list(filter(lambda d:d[3] == day and d[1] == month,
c.itermonthdays4(year, month)))[-2]
print(secondLastTues)
结果:
(2020, 1, 21, 1)
(2020, 2, 18, 1)
(2020, 3, 24, 1)
(2020, 4, 21, 1)
(2020, 5, 19, 1)
(2020, 6, 23, 1)
(2020, 7, 21, 1)
(2020, 8, 18, 1)
(2020, 9, 22, 1)
(2020, 10, 20, 1)
(2020, 11, 17, 1)
(2020, 12, 22, 1)
请告诉我它是否有效。我是新来的,这将有助于我的自尊。请告诉我它是否有效。我是新来的,这将有助于我的自尊。使用lambda与理解类似-[d代表列表中的d(c.itermonthdays4(年,月)),如果d[3]==day][2]
?@davest我认为理解也很好。但是我认为你需要检查月份(d[1]==month
),因为calendar
不只是给出给定月份内的日期。使用lambda与理解类似于-[d代表列表中的d(c.itermonthdays4(年,月))的任何特殊原因,如果d[3]==day][/code>?@davestwhere我认为理解也很好。但我认为您需要检查月份(d[1]==month
),因为calendar
不只是给出给定月份内的日期。我使用:now+relativedelta(day=31,weekday=TU(-2))
来自相对增量。我只是想弄明白为什么我甚至需要指定day=31?Relative delta是随时间变化的“相对”。31天是一个月中最长的一天,所以“相对而言”是每个月的最后一天。这有意义吗?我想,既然它已经不能继续了,为什么还要指定31呢?我只是在想是否有任何理由任何人都需要使用28。我使用了:now+relativedelta(day=31,weekday=TU(-2))
from relative delta。我只是想弄明白为什么我甚至需要指定day=31?Relative delta是随时间变化的“相对”。31天是一个月中最长的一天,所以“相对而言”是每个月的最后一天。这有意义吗?我想,既然它已经不能继续了,为什么还要指定31呢?我只是在想,是否有任何理由任何人都需要使用28。