Rechnen mit dem Datum

Von: , Frage gestellt am Mi, 28. Jun 2000

Ich habe zwei Daten. z.B. 13.5.2000 (12:00 Uhr) und 10.3.1999 (12:00 Uhr). Wie kann ich nun die Differenz diese beiden in z.B. Minuten (oder Tagen) ausrechnen. Ich habe da mal eine "Formel" gesehen in der die Tage mit einer Zahl (~4xx) multipliziert wurden, die Monate auch mit einer Zahl und dann diese die Differenz wieder durch bestimmte Zahlen genommen wurde. Wer kann helfen?

mfg Slick

10 Antworten zu dieser Frage

  1. Antwort von nach 4 Stunden hilfreich
    keine Formel, aber...

    Ich habe zwei Daten. z.B. 13.5.2000 (12:00 Uhr) und 10.3.1999
    (12:00 Uhr). Wie kann ich nun die Differenz diese beiden in
    z.B. Minuten (oder Tagen) ausrechnen.
    Eine Formel dafür habe ich nicht parat, aber wenn es Dir nur um die Lösung und nicht um den Lösungsweg geht, kannst Du das mit einer Tabellenkalkulation aus einem Officepaket (oder auch anderen Programmen) ausrechenen lassen.

    Excel berechnet für deine Daten 430 Tage oder 10320 Stunden oder 619200 Minuten oder 37152000 Sekunden. Allerdings muss man darauf vertrauen, dass Excel richtig rechnet. Das klappt nämlich nicht immer (aber fast).

    C.

    • Antwort von nach 5 Stunden hilfreich
      Re: keine Formel, aber...

      Eine Formel dafür habe ich nicht parat, aber wenn es Dir nur
      um die Lösung und nicht um den Lösungsweg geht, kannst Du das
      mit einer Tabellenkalkulation aus einem Officepaket (oder auch
      anderen Programmen) ausrechenen lassen.
      Danke, leider gehts mir aber um den Lösungsweg. Ich brauche schon eine Formel. Wenigstens einen guten Ansatz.

      mfg Slick

      • Antwort von nach 18 Stunden hilfreich
        Re^2: keine Formel, aber...

        Danke, leider gehts mir aber um den Lösungsweg. Ich brauche
        schon eine Formel. Wenigstens einen guten Ansatz.
        also ne richtige formel wird schwierig und eklig gross...
        falls du es programmieren musst, in der unix-standardbibliothek gibts dazu funktionen.
        ansonsten, es gab da vor einigen jahren mal recht nette kalenderfunktionen in der c't (in c), die eignen sich zweifelsohne (ok, fuer die uhrzeit muesstest du noch nachstricken, aber das sollte ja kein problem sein.
        ansonsten ist der ansatz, "einfach" die differenz in tagen zu ermitteln. hier stellen sich natuerlich so interessante fragen, welcher monat denn wieviele tage und welches jahr ein schaltjahr ist...

        joachim

        ps: wenn dich der c't artikel interessiert, mail mir mal, dann kann ich ihn raussuchen...

        • Antwort von nach einem Tag hilfreich
          Lösungsansatz?!

          Danke erstmal deiner Antwort, ich dachte mir das ganze ungefähr so: Man rechne statt mit Jahren mit einer "Konstante" von 4 Jahren, (4*365)+1, da hätte man das Schaltjahr schon mit drin...
          dann setzte ich mir ein "Jahr 0" welche ein Jahr ist nach einem Schaltjahr (z.B SJ:1988 > 1989) . Jetzt berechne ich für beide Daten die Anzahl der Tage ab dem Tag 0 der jeweiligen "4-Jahres-Konstante" und vergleiche diese miteinander. Leigen beide Daten nicht innerhalb der "4-Jahres-Konstante" rechne ich plus oder minus der (4*365)+1.

          Soweit etwa mein Gedanken. Wer kann mehr draus machen?


          mfg Slick

          • Antwort von nach einem Tag hilfreich
            Re: Lösungsansatz?!

            Danke erstmal deiner Antwort, ich dachte mir das ganze
            ungefähr so: Man rechne statt mit Jahren mit einer "Konstante"
            von 4 Jahren, (4*365)+1, da hätte man das Schaltjahr schon mit
            drin...
            dann setzte ich mir ein "Jahr 0" welche ein Jahr ist nach
            einem Schaltjahr (z.B SJ:1988 > 1989) . Jetzt berechne ich
            für beide Daten die Anzahl der Tage ab dem Tag 0 der
            jeweiligen "4-Jahres-Konstante" und vergleiche diese
            miteinander. Leigen beide Daten nicht innerhalb der
            "4-Jahres-Konstante" rechne ich plus oder minus der (4*365)+1.

            Soweit etwa mein Gedanken. Wer kann mehr draus machen?
            Welche Zeiträume willst Du überbrücken? Bei Jahrhunderten, die nicht durch 400 teilbar sind, paßt die Formel nicht mehr, da dies keine Schaltjahre sind (z.B. 1900, 2100).

            Gruß, Kubi

            • Antwort von nach einem Tag hilfreich
              Zeiträume

              Welche Zeiträume willst Du überbrücken?
              Ich möchte das in einem Programm einsetzen welches maximal mit Differenzen von 300 Tagen rechnet (dabei kann jedoch ein Silvester liegen). Dabei kommt es auf minutengenaue Rechnung nicht so genau an. Nur die Tage reichen mir schon. Zwar läuft das ganze auf einem Linuxartigen System der die Zeit eh in Sekunden (oder gar Milli-) zählt, jedoch will ich nicht diese Rechnung benutzen, sondern selbst eine "Formel" finden.

          • Antwort von nach 2 Tagen hilfreich
            Re: Lösungsansatz?!

            Hallo Slick,

            in der Astronomie verwendet man, u.a., das modifizierte julianische Datum (MJD) für eine kontinuierliche Tageszählung. Das MJD gibt die Zahl der Tage an, die seit dem 17.11.1858 0:00 vergangen sind und läßt sich mit folgender Prozedur berechnen:


            J = Jahr
            M = Monat
            T = Tag
            S = Stunde (gegebenenfalls mit Nachkommastellen)

            A = 10000*J + 100*M + T

            IF (M <= 2) THEN
            MM = M + 12
            JJ = J - 1
            ELSE
            MM = M
            JJ = J
            ENDIF

            IF (A <= 15821004.1) THEN
            B = -2 + TRUNC((JJ + 4716)/4) - 1179
            ELSE
            B = TRUNC(JJ/400) - TRUNC(JJ/100) + TRUNC(JJ/4)
            ENDIF

            C = 365*JJ - 679004

            MJD = B + C + TRUNC(30.6001*(MM+1)) + T + S/24


            TRUNC schneidet die Nachkommastellen ab.
            z.B. TRUNC( 1.3) = 1
            TRUNC(-1.3) = -1

            Die Formel ist für jedes Datum seit 4713 v. Chr. (J=-4712) gültig. Bis zum 4.10.1582 gilt der julianische Kalender. Ab dem 15.10.1582 der gregorianische (unser heutiger) Kalender.

            [Quelle: Montenbruck und Pfleger, Astronomie mit dem Personal Computer, Springer-Verlag]

            Gruß,
            Norbert

            • Antwort von nach 3 Tagen hilfreich
              Re^2: Lösungsansatz?!

              Danke, das hilft mit schon sehr weiter!

  2. Antwort von nach einem Tag hilfreich
    Re: Rechnen mit dem Datum

    Ich habe zwar auch keine Formel parat, aber denkt auch daran, daß der Kalender diverse Änderungen erfahren hat in den letzten Jahrhunderten! Aber ich glaube, bis 1582 kann man problemlos zurückgehen... Das dürfte meist genügen :-)



Keine passende Antwort gefunden? Jetzt eigene Frage stellen!