kostenloser Webspace werbefrei: lima-city


Überprüfung -> Zeitstempel und Schaltjahr

lima-cityForumProgrammiersprachenSonstige Programmiersprachen

  1. Autor dieses Themas

    willstdueswissen

    Kostenloser Webspace von willstdueswissen

    willstdueswissen hat kostenlosen Webspace.

    Hallo lima-city community,

    ich stehe vor einem Rätzel.

    Ich habe folgende Zeitstempel:
    1451606400
    1388534400
    1325376000
    1199145600
    1072915200
    1009843200
    0946684800
    0820454400

    Immer der erste Tag des Jahres um 0 Uhr:
    2016
    2014
    2012
    2008
    2004
    2002
    2000
    1996


    Nun möchte ich die Zeitstempel auf das Schaltjahr überprüfen.

    Folgender Code: (https://en.wikipedia.org/wiki/Leap_year) überprüft das Jahres als vier stellige Zahl:
    if (year is not divisible by 4) then (it is a common year)
    else if (year is not divisible by 100) then (it is a leap year)
    else if (year is not divisible by 400) then (it is a common year)
    else (it is a leap year)


    Gäbe es auch die Möglichkeit nur den Zeitstempel zu überprüfen (ohne das Jahr vorher auszurechen)?

    Wenn ja, wie sähe die Implementierung in etwa aus?
    Es müsste ja auch fasst genau so funktionieren wie mit der vier stellige Jahres-Zahl.

    Danke für eure Hilfe.

    MfG willstdueswissen
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. willstdueswissen schrieb:
    Gäbe es auch die Möglichkeit nur den Zeitstempel zu überprüfen (ohne das Jahr vorher auszurechen)?

    Wenn ja, wie sähe die Implementierung in etwa aus?
    Es müsste ja auch fasst genau so funktionieren wie mit der vier stellige Jahres-Zahl.

    Beispielsweise kann in JavaScript eine sehr simple Implementation so aussehen:
    function istSchaltjahr(t) {
         j = new Date(t * 1000).getFullYear();
         return !(j % 4 > 0 || (j % 100 == 0 && j % 400 > 0));
    }

    Der Parameter t ist der Unix-Zeitstempel (in Sekunden) als ganze Zahl. (Da JavaScript in Millisekunden rechnet, wird t vor dem Generieren des Datums noch mit 1000 multipliziert.)

    Hier wird der Einfachheit halber auf die Funktion getFullYear() der Klasse Date zurückgegriffen. Ähnliche Funktionen bestehen für andere Programmiersprachen auch und sind sonst oft durch Bibliotheken oder einfache Codeschnipsel ersetzbar.

    Für den Rückgabewert (ich habe der Einfachheit halber hier einen Boolean gewählt, der für ein Schaltjahr true ist) war ich zu faul, den Pseudocode 1:1 zu übersetzen und habe seinen Sinn in den kompakteren logischen Ausdruck dort oben gepackt. Nach dem im Pseudocode beschriebenen Schema funktioniert es natürlich auch.

    Wenn etwas an der Lösung unklar ist, frag bitte.

    Diese Lösung bringt dir natürlich nichts, wenn du darauf aus warst, einen genauen Weg zu finden, um »mathematisch« über den Zeitstempel direkt ans Schaltjahr zu kommen. War das dein Ziel oder beantwortet der Rest meiner Antwort deine Frage?

    Beitrag zuletzt geändert: 21.11.2016 22:21:54 von funnyweb
  4. Autor dieses Themas

    willstdueswissen

    Kostenloser Webspace von willstdueswissen

    willstdueswissen hat kostenlosen Webspace.

    funnyweb schrieb:
    war ich zu faul, den Pseudocode 1:1 zu übersetzen


    Faul? :cookie:
    Ist das nicht jeder ;)

    funnyweb schrieb:
    Diese Lösung bringt dir natürlich nichts, wenn du darauf aus warst, einen genauen Weg zu finden, um »mathematisch« über den Zeitstempel direkt ans Schaltjahr zu kommen. War das dein Ziel oder beantwortet der Rest meiner Antwort deine Frage?


    Auch wenn du dir viel Mühe gemacht hast, war meine Frage eher auf dem "mathematischen" Bereich.
    Denn erst das Jahr ausrechnen (mit oder ohne) wäre ja so ziemlich die einfachste Lösung :megarofl:.
    Mich Interessiert aber

    funnyweb schrieb:
    über den Zeitstempel direkt ans Schaltjahr zu kommen.


    Da es sich um Zeitstempel vom Anfang des Jahres (also glatte Zeitstempel) handelt sollte es eigentlich mathematisch/programmiertechnisch kein Problem darstellen.

    Aber danke für die Antwort.
    :prost:
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!