| 12345678910111213141516171819202122232425 |
- 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.
|