<<>> <> <> <> <<>> DIRECTORY BasicTime USING [GMT]; UXTime: CEDAR DEFINITIONS ~ { OPEN BasicTime; OutOfRange: ERROR; TimeNotKnown: ERROR; UXTIME: TYPE[UNITS[CARD32]]; -- seconds since 00:00Z Jan 1, 1978. earliestUXTIME: UXTIME ~ LOOPHOLE[CARD32.FIRST]; latestUXTIME: UXTIME ~ LOOPHOLE[CARD32.LAST-1]; -- semi-arbitrary = nullUXTIME.PRED nullUXTIME: UXTIME ~ LOOPHOLE[CARD32.LAST]; -- arbitrary! Now: PROC RETURNS [UXTIME]; Period: PROC [from, to: UXTIME] RETURNS [INT32]; Update: PROC [base: UXTIME, period: INT32] RETURNS [UXTIME]; ToGMT: PROC [time: UXTIME] RETURNS [GMT]; FromGMT: PROC [gmt: GMT] RETURNS [UXTIME]; <> DOWN: PUBLIC PROC [time: UXTIME] RETURNS [CARD32]; UP: PUBLIC PROC [secs: CARD32] RETURNS [UXTIME]; unixBaseYear: NAT ~ 1970; -- times start at 00:00Z Jan 1, 1978. }.