Rev 7693 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7693 | Rev 7696 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | (* |
1 | (* |
2 | BSD 2-Clause License |
2 | BSD 2-Clause License |
Line 3... | Line 3... | ||
3 | 3 | ||
4 | Copyright (c) 2018, 2019, Anton Krotov |
4 | Copyright (c) 2018-2019, Anton Krotov |
5 | All rights reserved. |
5 | All rights reserved. |
Line 6... | Line 6... | ||
6 | *) |
6 | *) |
Line 7... | Line 7... | ||
7 | 7 | ||
Line 8... | Line 8... | ||
8 | MODULE UTILS; |
8 | MODULE UTILS; |
Line 9... | Line 9... | ||
9 | 9 | ||
Line 22... | Line 22... | ||
22 | 22 | ||
23 | min32* = -2147483647-1; |
23 | min32* = -2147483647-1; |
Line -... | Line 24... | ||
- | 24 | max32* = 2147483647; |
|
- | 25 | ||
- | 26 | ||
- | 27 | TYPE |
|
- | 28 | ||
24 | max32* = 2147483647; |
29 | DAYS = ARRAY 12, 31, 2 OF INTEGER; |
Line 25... | Line 30... | ||
25 | 30 | ||
Line 26... | Line 31... | ||
26 | 31 | ||
Line 46... | Line 51... | ||
46 | 51 | ||
Line 47... | Line 52... | ||
47 | END; |
52 | END; |
Line -... | Line 53... | ||
- | 53 | ||
Line -... | Line 54... | ||
- | 54 | bit_diff*: INTEGER; |
|
48 | 55 | ||
49 | bit_diff*: INTEGER; |
56 | days: DAYS; |
50 | 57 | ||
Line 51... | Line 58... | ||
51 | 58 | ||
Line 112... | Line 119... | ||
112 | BEGIN |
119 | BEGIN |
113 | HOST.GetCurrentDirectory(path) |
120 | HOST.GetCurrentDirectory(path) |
114 | END GetCurrentDirectory; |
121 | END GetCurrentDirectory; |
Line -... | Line 122... | ||
- | 122 | ||
- | 123 | ||
- | 124 | PROCEDURE GetUnixTime* (year, month, day, hour, min, sec: INTEGER): INTEGER; |
|
- | 125 | RETURN ((year - 1970) * 365 + days[month - 1, day - 1, ORD(year DIV 4 = 0)] + (year - 1969) DIV 4) * 86400 + hour * 3600 + min * 60 + sec |
|
- | 126 | END GetUnixTime; |
|
115 | 127 | ||
116 | 128 | ||
117 | PROCEDURE UnixTime* (): INTEGER; |
129 | PROCEDURE UnixTime* (): INTEGER; |
118 | VAR |
130 | VAR |
Line 119... | Line 131... | ||
119 | year, month, day, hour, min, sec: INTEGER; |
131 | year, month, day, hour, min, sec: INTEGER; |
120 | res: INTEGER; |
132 | res: INTEGER; |
121 | 133 | ||
122 | BEGIN |
134 | BEGIN |
123 | IF OS = "LINUX" THEN |
135 | IF OS = "LINUX" THEN |
124 | res := HOST.UnixTime() |
136 | res := HOST.UnixTime() |
125 | ELSE |
137 | ELSE |
Line 126... | Line 138... | ||
126 | HOST.now(year, month, day, hour, min, sec); |
138 | HOST.now(year, month, day, hour, min, sec); |
127 | res := UNIXTIME.time(year, month, day, hour, min, sec) |
139 | res := GetUnixTime(year, month, day, hour, min, sec) |
Line 199... | Line 211... | ||
199 | 211 | ||
200 | RETURN n |
212 | RETURN n |
Line -... | Line 213... | ||
- | 213 | END Log2; |
|
- | 214 | ||
- | 215 | ||
- | 216 | PROCEDURE init (VAR days: DAYS); |
|
- | 217 | VAR |
|
- | 218 | i, j, n0, n1: INTEGER; |
|
- | 219 | ||
- | 220 | BEGIN |
|
- | 221 | ||
- | 222 | FOR i := 0 TO 11 DO |
|
- | 223 | FOR j := 0 TO 30 DO |
|
- | 224 | days[i, j, 0] := 0; |
|
- | 225 | days[i, j, 1] := 0; |
|
- | 226 | END |
|
- | 227 | END; |
|
- | 228 | ||
- | 229 | days[ 1, 28, 0] := -1; |
|
- | 230 | ||
- | 231 | FOR i := 0 TO 1 DO |
|
- | 232 | days[ 1, 29, i] := -1; |
|
- | 233 | days[ 1, 30, i] := -1; |
|
- | 234 | days[ 3, 30, i] := -1; |
|
- | 235 | days[ 5, 30, i] := -1; |
|
- | 236 | days[ 8, 30, i] := -1; |
|
- | 237 | days[10, 30, i] := -1; |
|
- | 238 | END; |
|
- | 239 | ||
- | 240 | n0 := 0; |
|
- | 241 | n1 := 0; |
|
- | 242 | FOR i := 0 TO 11 DO |
|
- | 243 | FOR j := 0 TO 30 DO |
|
- | 244 | IF days[i, j, 0] = 0 THEN |
|
- | 245 | days[i, j, 0] := n0; |
|
- | 246 | INC(n0) |
|
- | 247 | END; |
|
- | 248 | IF days[i, j, 1] = 0 THEN |
|
- | 249 | days[i, j, 1] := n1; |
|
- | 250 | INC(n1) |
|
- | 251 | END |
|
- | 252 | END |
|
- | 253 | END |
|
- | 254 | ||
201 | END Log2; |
255 | END init; |
202 | 256 | ||
203 | 257 | ||
204 | BEGIN |
258 | BEGIN |
205 | time := GetTickCount(); |
259 | time := GetTickCount(); |
- | 260 | COPY(HOST.eol, eol); |
|
206 | COPY(HOST.eol, eol); |
261 | maxreal := 1.9; |
207 | maxreal := 1.9; |
262 | PACK(maxreal, 1023); |