//function fDT_to_UT: udint; // Преобразование Даты и Времени в формат UnixTime function fDT_to_UT: udint; var_input sec, min, hour, day, month, year : udint; end_var var is_leap:bool; DayInMonth: array [0..12] of udint := [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31 ,30 ]; i: udint; days:udint; end_var //PRG if month=0 or month>12 then month:=1; end_if; is_leap:= ( ((year mod 4) = 0) and ((year mod 100) > 0) ) or ((year mod 400) = 0) ; DayInMonth[2]:= DayInMonth[2] + bool_to_udint(is_leap); for i:= 0 to (month-1) do days:= days + DayInMonth[i]; end_for fDT_to_UT:= sec + min*60 + hour*3600 + (days + (year - 1970)*365 + (year - 1969)/4 - (year - 1901)/100 + (year-1601)/400 + day - 1 ) * 86400 ; end_function