1,13 → 1,13 |
(* |
(* |
BSD 2-Clause License |
|
Copyright (c) 2018, 2019, Anton Krotov |
Copyright (c) 2018-2019, Anton Krotov |
All rights reserved. |
*) |
|
MODULE UTILS; |
|
IMPORT HOST, UNIXTIME; |
IMPORT HOST; |
|
|
CONST |
24,6 → 24,11 |
max32* = 2147483647; |
|
|
TYPE |
|
DAYS = ARRAY 12, 31, 2 OF INTEGER; |
|
|
VAR |
|
time*: INTEGER; |
48,8 → 53,10 |
|
bit_diff*: INTEGER; |
|
days: DAYS; |
|
PROCEDURE FileRead* (F: INTEGER; VAR Buffer: ARRAY OF BYTE; bytes: INTEGER): INTEGER; |
|
PROCEDURE FileRead* (F: INTEGER; VAR Buffer: ARRAY OF CHAR; bytes: INTEGER): INTEGER; |
RETURN HOST.FileRead(F, Buffer, bytes) |
END FileRead; |
|
114,6 → 121,11 |
END GetCurrentDirectory; |
|
|
PROCEDURE GetUnixTime* (year, month, day, hour, min, sec: INTEGER): INTEGER; |
RETURN ((year - 1970) * 365 + days[month - 1, day - 1, ORD(year DIV 4 = 0)] + (year - 1969) DIV 4) * 86400 + hour * 3600 + min * 60 + sec |
END GetUnixTime; |
|
|
PROCEDURE UnixTime* (): INTEGER; |
VAR |
year, month, day, hour, min, sec: INTEGER; |
124,7 → 136,7 |
res := HOST.UnixTime() |
ELSE |
HOST.now(year, month, day, hour, min, sec); |
res := UNIXTIME.time(year, month, day, hour, min, sec) |
res := GetUnixTime(year, month, day, hour, min, sec) |
END |
|
RETURN res |
201,9 → 213,52 |
END Log2; |
|
|
PROCEDURE init (VAR days: DAYS); |
VAR |
i, j, n0, n1: INTEGER; |
|
BEGIN |
|
FOR i := 0 TO 11 DO |
FOR j := 0 TO 30 DO |
days[i, j, 0] := 0; |
days[i, j, 1] := 0; |
END |
END; |
|
days[ 1, 28, 0] := -1; |
|
FOR i := 0 TO 1 DO |
days[ 1, 29, i] := -1; |
days[ 1, 30, i] := -1; |
days[ 3, 30, i] := -1; |
days[ 5, 30, i] := -1; |
days[ 8, 30, i] := -1; |
days[10, 30, i] := -1; |
END; |
|
n0 := 0; |
n1 := 0; |
FOR i := 0 TO 11 DO |
FOR j := 0 TO 30 DO |
IF days[i, j, 0] = 0 THEN |
days[i, j, 0] := n0; |
INC(n0) |
END; |
IF days[i, j, 1] = 0 THEN |
days[i, j, 1] := n1; |
INC(n1) |
END |
END |
END |
|
END init; |
|
|
BEGIN |
time := GetTickCount(); |
COPY(HOST.eol, eol); |
maxreal := 1.9; |
PACK(maxreal, 1023) |
END UTILS. |
PACK(maxreal, 1023); |
init(days) |
END UTILS. |