Wochentag in CoDeSys ermitteln

Veröffentlicht von

Eine kleine Programmieraufgabe zur Übung. Welcher Tag der Woche ist ein bestimmtes Datum. Dafür gibt es ein passende Formel auf Wikipedia. In CoDeSys kann diese leicht umgesetzt werden.

Die Deklaration:

PROGRAM PLC_PRG
VAR
    d : INT:= 15; //day
    m : INT:= 10; //month
    y: INT:= 2018; //year
    w: DINT; //result -> day of the week 1 = monday ...        
END_VAR

Die Implementierung ist einfach:

IF (m < 3) THEN
    y:= y - 1;
END_IF

w:= ((d + TRUNC(2.6 * ((m + 9) MOD 12 + 1) - 0.2) + y MOD 100 
    + TRUNC(y MOD 100 / 4) + TRUNC(y / 400) 
	- 2 * TRUNC(y / 100) - 1) MOD 7 + 7) MOD 7 + 1;

In w steht anschließend der Tag der Woche. Z.B. 1 für Montag und so weiter.

Download Beispielprojekt

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert