MODULE TSysClock; // ISO SysClock: CanGetClock/CanSetClock, GetClock fills a valid UTC // DateTime, IsValidDateTime accepts it, SetClock is a no-op. Exit 42. IMPORT SysClock; VAR ExitCode : INTEGER; VAR dt : SysClock.DateTime; BEGIN IF SysClock.CanGetClock() AND NOT SysClock.CanSetClock() THEN SysClock.GetClock(dt); SysClock.SetClock(dt); IF SysClock.IsValidDateTime(dt) AND (dt.year >= 2020) AND (dt.year <= 2100) AND (dt.month >= 1) AND (dt.month <= 12) AND (dt.day >= 1) AND (dt.day <= 31) AND (dt.hour <= 23) AND (dt.minute <= 59) AND (dt.second <= 59) AND (dt.fractions = 0) AND (dt.zone = 0) AND NOT dt.summerTimeFlag THEN ExitCode := 42 ELSE ExitCode := 1 END ELSE ExitCode := 2 END END TSysClock.