Gibt es eine Möglichkeit, mit Python's Standardbibliothek leicht zu bestimmen (d.h. ein Funktionsaufruf) den letzten Tag eines bestimmten Monats?
Wenn die Standardbibliothek dies nicht unterstützt, unterstützt das dateutil-Paket dies?
Gibt es eine Möglichkeit, mit Python's Standardbibliothek leicht zu bestimmen (d.h. ein Funktionsaufruf) den letzten Tag eines bestimmten Monats?
Wenn die Standardbibliothek dies nicht unterstützt, unterstützt das dateutil-Paket dies?
Um das letzte Datum des Monats zu erhalten, gehen wir folgendermaßen vor:
from datetime import date, timedelta
import calendar
last_day = date.today().replace(day=calendar.monthrange(date.today().year, date.today().month)[1])
Um nun zu erklären, was wir hier tun, werden wir es in zwei Teile aufteilen:
Zunächst wird die Anzahl der Tage des aktuellen Monats ermittelt, für die wir die Monatsbereich Blair Conrad hat seine Lösung bereits erwähnt:
calendar.monthrange(date.today().year, date.today().month)[1]
zweitens das letzte Datum selbst, das wir mit Hilfe von ersetzen. z.B.
>>> date.today()
datetime.date(2017, 1, 3)
>>> date.today().replace(day=31)
datetime.date(2017, 1, 31)
und wenn wir sie wie oben erwähnt kombinieren, erhalten wir eine dynamische Lösung.
Obwohl dieser Code zur Lösung des Problems beitragen kann, erklärt er nicht warum und/oder wie beantwortet sie die Frage. Die Bereitstellung dieses zusätzlichen Kontextes würde den langfristigen pädagogischen Wert des Textes erheblich verbessern. Bitte bearbeiten fügen Sie Ihrer Antwort eine Erklärung hinzu, einschließlich der Einschränkungen und Annahmen, die gelten.
Wenn Sie bereit sind, eine externe Bibliothek zu verwenden, schauen Sie sich http://crsmithdev.com/arrow/
Sie können dann den letzten Tag des Monats mit erhalten:
import arrow
arrow.utcnow().ceil('month').date()
Das Ergebnis ist ein Datumsobjekt, das Sie dann manipulieren können.
Pandas datetime-Objekt hat eine spezielle Methode dafür: now=datetime.datetime.now(); pd_now = pd.to_datetime(now); print(pd_now.days_in_month)
Für mich ist der einfachere Weg die Verwendung von Pandas (Zwei-Zeilen-Lösung):
from datetime import datetime
import pandas as pd
firstday_month = datetime(year, month, 1)
lastday_month = firstday_month + pd.offsets.MonthEnd(1)
Eine andere Möglichkeit ist: Man nimmt den ersten Tag des Monats, addiert dann einen Monat und zieht einen Tag ab:
from datetime import datetime
import pandas as pd
firstday_month = datetime(year, month, 1)
lastday_month = firstday_month + pd.DateOffset(months=1) - pd.DateOffset(days=1)
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.