31.01.2012 + 1 month - 4 days: Was würdet ihr erwarten?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

Hallo,

welche Reihenfolge in der Datumsberechnung würdet ihr erwarten?

Zuerst die Monate, dann die Tage

Code: Alles auswählen

(2012, 1, 31).delta(months=+1, days=-4) ergibt (2012, 2, 25)
oder erst die Tage, dann die Monate

Code: Alles auswählen

(2012, 1, 31).delta(months=+1, days=-4) ergibt (2012, 2, 27)
Die Frage tauchte für mich auf, als ich mit 'relativedelta()' aus dem 'dateutil'-Modul herumspielte und bei obiger Beispielrechnung eigentlich (2012, 2, 27) erwartet hätte.

Was meint ihr?

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
BlackJack

Ich würde gar nichts erwarten weil das einfach nicht eindeutig ist.
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Ich würde das Verhalten erwarten, welches in der dateutil Dokumentation definiert wurde.

Grüße
Gerrit
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

@mutetella
Nutzt Du dateutil, sehe ich das wie gkuhl - das dort definierte Verhalten ist das einzig Erwartbare.

Gehst Du vom Freisprachlichen aus, würde ich es streng nicht kommutativ halten, Beispiel:
"Ich gebe Dir 3 Monate und 4 Tage, das Geld zurück zu geben" vs. "Ich gebe Dir 4 Tage und 3 Monate, das Geld zurück zu geben" - führt dann mitunter zu unterschiedlichen Ergebnissen. Das kann man noch weiter treiben ala "3 Monate, 4 Tage und 2 Monate" - die Monate sind dann eben nicht subsummierbar. Wirklich intuitiv ist das bei komplexeren Rechnungen nicht mehr, wäre halt auch nur eine Festlegung eines Standardverhaltens.
Antworten