Цитата Сообщение от petera Посмотреть сообщение
Ура!
Моя первая функция - Вычисление дня недели

Захват-03.png Захват-04.png

Нашёл давно на просторах интернета такой метод

Скрытый текст:
dayOfWeek = (year+year/4+ ММ[mounth] + day) MOD 7
где
year - год;
day - номер дня в месяце;
ММ[mounth] - значение из массива
январь 5 (4 - для високосного года)
февраль 1 (0 - для високосного года)
март 1
апрель 4
май 6
июнь 2
июль 4
август 0
сентябрь 3
октябрь 5
ноябрь 1
декабрь 3


В вычислениях используются только целочисленные значения
Код:
FUNCTION dayOfWeek : UDINT;     // (c)  PeterA
VAR_INPUT
    year: udint;
    mounth: udint;
    day:udint;
END_VAR
VAR
    MM: ARRAY [1..12] OF udint := [5,1,1,4,6,2,4,0,3,5,1,3];
END_VAR

IF udint_to_bool(year MOD 4 ) THEN
    MM[1]:= 5; MM[2]:= 1;
ELSE
    MM[1]:= 4; MM[2]:= 0;
END_IF

dayOfWeek:= (year+year/4+ MM[mounth] + day) MOD 7;
    
end_function
Ну с массивами придётся обождать/аккуратно разграничивать. Пока ST и остальной код ОвенЛоджика это как 2 континента с узким подвесным мостом. В Лоджике пока ещё только bool, unsigned long и float. Остальные типы не поддерживаются