Ich verwende das Python- Datum / Uhrzeit- Modul, dh:
>>> import datetime
>>> today = datetime.datetime.now()
>>> print today
2009-03-06 13:24:58.857946
und ich möchte den Tag des Jahres berechnen, der für Schaltjahre empfindlich ist. Beispiel: Heute (6. März 2009) ist der 65. Tag des Jahres 2009. Hier ist der webbasierte DateTime-Rechner .
Wie auch immer, ich sehe zwei Möglichkeiten:
A. Erstellen Sie ein Array "number_of_days_in_month" = [31, 28, ...], entscheiden Sie, ob es sich um ein Schaltjahr handelt, und fassen Sie die Tage manuell zusammen.
B. Verwenden Sie datetime.timedelta
diese Option , um eine Vermutung anzustellen und anschließend binär nach dem richtigen Tag im Jahr zu suchen:
>>> import datetime
>>> YEAR = 2009
>>> DAY_OF_YEAR = 62
>>> d = datetime.date(YEAR, 1, 1) + datetime.timedelta(DAY_OF_YEAR - 1)
Diese beiden fühlen sich ziemlich klobig an und ich habe das Gefühl, dass es eine "pythonischere" Methode gibt, den Tag des Jahres zu berechnen. Irgendwelche Ideen / Vorschläge?
date.today()
eher verwendet alsdatetime.now()
funktioniert und die Art der Operation ein bisschen mehr betont.