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.