Suche "Wochentag aus Datum" Berechnung

  • Huhu :)


    suche für eine meiner Steuerungen ne Umrechung von Datum in Wochentag.
    Sollte natürlich auch Schaltjahre etc. berücksichtigen können.


    hab auch bereits ma google angeschmissen aber werde da nicht soo schlau draus, da die meisten sachen leider auf irgendwelche programmiersprachen bezogen sind :(

  • ich brauche ne allg. mathematische formel dazu, ich muss diese dann in eine nicht-computer basierte steuerung einprogrammieren ;)
    hab bei wikipedia die doomsday methode gefunden, wäre aber trotzdem vielleicht noch um die eine oder andere idee froh

  • mhh selber entwickeln?


    Du merkst dir von einem Datum z.b. 1.1.1970 den wochentag, dann berechnest du die Differenz zum eingegebenen Datum, achtung Schaltjahre! (alle 4 Jahre ist eines, alle 100 Jahre keines, aber alle 400 Jahre ist eines) und teilst das durch 7...


    Ich weiss umständlich aber wohl die logiste Methode.

  • müsste ich entweder in die proprietäre SW eines bedienterminals reinquetschen (beherscht arithmetik, u.a. auch modulo) oder in AWL, FUP oder KOP in ne S7-300 kompatible steuerung

  • ah mit ner s7 kannst du auch mod:



    Wie kann ich eine Modulo-Funktion in STEP 7 - Micro / WIN realisieren?

    Antwort
    Der Modulo-Operator gibt den Rest beim Dividieren von Ganzzahlen aus.


    Beispiel:
    6 Mod 2 = 0 --> 6 / 2 = 3 ; kein Rest
    11 Mod 4 = 3 --> 11 / 4 = 2 Rest 3;


    Mit der Modulo-Funktion können Sie prüfen, ob eine Zahl durch eine andere Zahl teilbar ist - dies ergibt Modulo 0.
    Der Modulo-Operator wird häufig in Programmier-Hochsprachen wie C, Basic, Java etc. genutzt. Er wird aber vornehmlich als Teiler genutzt, um bestimmte Funktionen (innerhalb von Schleifen) nur zu bestimmten Durchläufen auszuführen bzw. zu schalten.


    Beispiel:
    FOR x=1 TO 20
    IF x MOD 2 = 0 THEN CALL Anything
    NEXT



    --> http://w2.siemens.at/ad/s7-200/de/s553.htm

  • jo werds ev. in der s7 umsetzen, da ich das panel nicht mit solchen sachen belasten will ;)


    modulo geht auch ohne mod baustein wenns sein muss c=a/b -> c abrunden auf ganzzahl -> d=c*b und dann a-d -> rest ;)

  • Hab noch was fast einfacheres gefunden :)


    Man Arbeitet nur mit fünf sehr einfachen werten.
    Wert1 = Tag mod 7
    Wert2 = Jan, Okt=0; Feb,Mrz,Nov=3; Mai=1; Apr, Jul=6;Jun=4;Sep,Dez=5, Aug=2
    Wert3 = zwei hinteren Jahresstellen (yy mod 7)+(yy / 4 davon FLOOR also abrunden auf ganzzahl)
    Wert4 = 6 solange man im jahr 20xx ist
    Wert5 -> Brauchts nur wenn mm < 3 (also januar und februar) Wenn yy mod 4 <> 0 dann ist wert5 gleich null sonst gleich 6


    dann alle werte addieren und davon mod 7 bilden, 0 = sonntag, 1 = montag etc. scheint bisher bestens zu funzen und ich denke wert4 ist eh egal, im jahre 2100 wirds mich eh nedmehr interessieren :D