Wie erhalte ich den letzten Montag (oder einen anderen Tag) eines bestimmten Monats?

4
user984003 9 Okt. 2012 im 13:01

4 Antworten

Beste Antwort

Verwenden des Kalender -Moduls aus der stdlib:

import calendar
cal = calendar.Calendar(0)
month = cal.monthdatescalendar(2010, 7)
lastweek = month[-1]
monday = lastweek[0]
print(monday)

2010-07-26
8
Gary van der Merwe 9 Okt. 2012 im 09:10

Schauen Sie sich dateutil an:

from datetime import datetime
from dateutil import relativedelta
datetime(2010,7,1) + relativedelta.relativedelta(day=31, weekday=relativedelta.MO(-1))

Kehrt zurück

datetime.datetime(2010, 7, 26, 0, 0)
9
eumiro 9 Okt. 2012 im 09:06

Basierend auf Garys Antwort:

import calendar
month = calendar.monthcalendar(2010, 7)
mondays = [week[0] for week in month if week[0]>0]
print mondays[-1]

26

Dies funktioniert, um den letzten Sonntag des Monats abzurufen, auch wenn die letzte Woche des Monats keinen Sonntag hat.

1
Community 23 Mai 2017 im 12:15

Eine winzige Verbesserung gegenüber Manus Antwort!

import calendar
month = calendar.monthcalendar(2010, 7)
day_of_month = max(month[-1][calendar.SUNDAY], month[-2][calendar.SUNDAY])
print day_of_month 
0
ticktock 30 März 2015 im 05:11