每个月的倒数第二个星期二
Second last Tuesday for every month
如何获取一个月的倒数第二个星期二的日期?
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])
这将在上周二打印第二张。希望这会有所帮助。不清楚的可以评论。
relative delta 救援!
您需要执行以下操作:
- 获取该月的最后一个 DATE
- 使用相对数据将 DATE 转换为 DAY
- 按 DATE 将 DAY 倒推到星期二(即该月的最后一个星期二)
- 从该日期减去一周
如您所知,请注意 DATE 和 DAY
您似乎可以从 Calendar.itermonthdays4()
中获取所有日期并按日和月过滤它们。然后用 [-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)
如何获取一个月的倒数第二个星期二的日期?
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])
这将在上周二打印第二张。希望这会有所帮助。不清楚的可以评论。
relative delta 救援!
您需要执行以下操作:
- 获取该月的最后一个 DATE
- 使用相对数据将 DATE 转换为 DAY
- 按 DATE 将 DAY 倒推到星期二(即该月的最后一个星期二)
- 从该日期减去一周
如您所知,请注意 DATE 和 DAY
您似乎可以从 Calendar.itermonthdays4()
中获取所有日期并按日和月过滤它们。然后用 [-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)