Только в кодесис нет стандартной функции, которая определяет текущую дату.
Воспользуйтесь такой функцией, которая с помощью библиотеки SysLibTime вычисляет текущую дату
С учетом этой функции получитсяКод:FUNCTION curDATE : DATE VAR_INPUT END_VAR VAR CurTimeExInst: CurTimeEx; CurSystemTimeDate: SystemTimeDate; CurSysTime64: SysTime64; year: INT; day: INT; month: INT; count: INT; END_VAR CurTimeExInst(TimeDate := CurSystemTimeDate, SystemTime := CurSysTime64); year :=CurSystemTimeDate.Year; month :=CurSystemTimeDate.Month; day :=CurSystemTimeDate.Day; (*------------------------------------------------------------------------*) IF year=0 THEN year:=1970; day:=1; month:=1; END_IF (* если функция вызывается в эмуляции*) (*Вычислить дату с учетом високосных лет*) IF month > 2 THEN count := (month - 1) * 30; IF month > 7 THEN count := count + SHR(month - 3,1); ELSE count := count + SHR(month - 4,1); END_IF; (* проверить на високосный год и добавить один день если год високосный *) IF SHL(year,14) = 0 THEN count := count + 1; END_IF; ELSE count := (month - 1) * 31; END_IF; curDATE := DWORD_TO_DATE((INT_TO_DWORD(count + day - 1) + SHR(INT_TO_DWORD(year) * 1461 - 2878169, 2)) * 86400); (*------------------------------------------------------------------------*)
Захват-7.png
Захват-6.png




Ответить с цитированием