Seite 1 von 1
31.01.2012 + 1 month - 4 days: Was würdet ihr erwarten?
Verfasst: Freitag 31. August 2012, 16:46
von mutetella
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
Re: 31.01.2012 + 1 month - 4 days: Was würdet ihr erwarten?
Verfasst: Freitag 31. August 2012, 17:12
von BlackJack
Ich würde gar nichts erwarten weil das einfach nicht eindeutig ist.
Re: 31.01.2012 + 1 month - 4 days: Was würdet ihr erwarten?
Verfasst: Freitag 31. August 2012, 17:15
von gkuhl
Ich würde das Verhalten erwarten, welches in der
dateutil Dokumentation definiert wurde.
Grüße
Gerrit
Re: 31.01.2012 + 1 month - 4 days: Was würdet ihr erwarten?
Verfasst: Samstag 1. September 2012, 10:17
von jerch
@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.