Frage von KannKeinMathe69, 26

Wie konvertiere ich ein Datum zu Tagen und zurück?

Ich muss Methoden schreiben um Daten zu addieren ohne Libraries zu nutzen. Ich kann ein Datum so umwandeln dass quasi die Zahl der Tage seit 1.1.0000 da steht und dann mache ich meine Addition aber ich raff es nicht das zurückzuwandeln. Irgenwelche Tipps?

Danke im Voraus

Antwort
von Belaro, 19

Wenn du das Datum immer in der Form DD.MM.JJJJ hast und es ein String ist, dann kannst du den String mit split oder so ähnliches Aufteilen in Tag, Monat und Jahr. Wenn du das hast, dann kannst du so die Daten mit einer selbstgeschriebenen Regel addieren.

Kommentar von KannKeinMathe69 ,

Danke aber das versuche ich ja garnicht. Sagen wir ich weiß dass mein Datum irgendwie 750.000 Tage seit Tag 0 ist und ich addiere 25 Tage drauf. Dann muss ich das ganze zurück in ein Datum konvertieren mit Beachtung von Schaltjahren usw.

Kommentar von Belaro ,

Sorry. Ich lese manchmal die Fragen zu schnell durch. Mit einer Division würde das klappen. Wenn wir es ganz simpel bei dir machen wollen, lassen wir den 29 Februar aus und nehmen den Buchhalterkalender, wo jeder Monat 30 Tage hat. So kannst du es dann mit einer Division machen.

Beispielrechnung:
750 Tage / 360 Tage = 2.0833 Jahre = 2 Jahre
750 Tage - (360 Tage * 2 Jahre) = 30 Tage
30 Tage / 30 Tage = 1 (somit hat es den Monat 1)
Wäre es 1.5 gewesen, dann hätten wir es aufgerundet (immer aufrunden) und hätten den Monat Februar und würden noch das machen
45 Tage - 30 Tage = 15 Tage.

Wenn wir 750 Tage nehmen, dann hätten wir nun 1.1.0002
Wenn wir 765 Tage nehmen (damit wir auf die 1.5 kommen), dann hätten wir den 15.02.0002

Hoffe mal, dass du die Rechnung ein wenig verstehst aber so hätte ich es gemacht. Wenn du es für den Richtigen Kalender machen möchtest, dann wird es sehr schwer. Dafür müsste man noch Ausnahmen für bestimmte Jahre machen und nicht zu vergessen, dass ein Monat mal 30 mal 31 Tage hat. Aber vielleicht kommst du so noch auf eine gute Idee. Sorry nochmals wegen der falschen Antwort.

Kommentar von KannKeinMathe69 ,

Danke. Ich spiele auch mit dem Gedanken einfach Schaltjahre und richtige Monate zu ignorieren und einfach mit solchen Zahlen zu rechnen aber eigentlich sollen wir das vernünftig berechnen.

Danke trotzdem für deine Mühe

Keine passende Antwort gefunden?

Fragen Sie die Community