1 02/06/84 datebin_
2
3 The datebin_ subroutine has several entry points to convert clock
4 readings into binary integers and vice versa representing the year,
5 month, day, hour, minute, second, current shift, day of the week,
6 number of days since January 1, 1901, and the number of days since
7 January 1 of the year indicated by the clock. Clock readings are
8 Multics Greenwich mean time GMT; all other arguments represent local
9 time.
10
11 If arguments passed to datebin_ are not in the valid range, the
12 returned arguments are generally 0 in certain cases no checking
13 should be done.
14
15
16 Entry points in datebin_:
17 List is generated by the help command
18
19
20 :Entry: clockathr: 02/06/84 datebin_$clockathr
21
22
23 Function: returns a clock reading for the next time the given hour
24 occurs.
25
26
27 Syntax:
28 declare datebin_$clockathr entry fixed bin fixed bin71;
29 call datebin_$clockathr zz clock;
30
31
32 Arguments:
33 zz
34 is the desired hour and minutes expressed as hhmm in decimal e.g.
35 1351. Input
36 clock
37 is a calendar clock reading with the number of microseconds since
38 0000 GMT January 1, 1901. Output
39
40
41 :Entry: datebin: 02/06/84 datebin_
42
43
44 Function: returns the month, day, year, hour, minute, second, weekday,
45 shift, and number of days since January 1, 1901, given a calendar
46 clock reading.
47
48
49 Syntax:
50 declare datebin_ entry fixed bin71 fixed bin fixed bin fixed bin
51 fixed bin fixed bin fixed bin fixed bin fixed bin fixed bin;
52 call datebin_ clock absda mo da yr hr min sec wkday s;
53
54
55 Arguments:
56 clock
57 is a calendar clock reading with the number of microseconds since
58 0000 GMT January 1, 1901. Input
59 absda
60 is the number of the days the clock reading represents with January
61 1 1901 = 1. Output
62 mo
63 is the month 1-12. Output
64 da
65 is the day of the month 1-31. Output
66 yr
67 is the year 1901-1999. Output
68 hr
69 is the hour of the day 0-23. Output
70
71
72 min
73 is the minute of the hour 0-59. Output
74 sec
75 is the second of the minute 0-59. Output
76 wkday
77 is the day of the week 1 = Monday 7 = Sunday. Output
78 s
79 is the shift, as defined in installation_parms. Output
80
81
82 :Entry: datofirst: 02/06/84 datebin_$datofirst
83
84
85 Function: returns the number of days since January 1, 1901, up to but
86 not including January 1 of the year specified.
87
88
89 Syntax:
90 declare datebin_$datofirst entry fixed bin fixed bin;
91 call datebin_$datofirst yr datofirst;
92
93
94 Arguments:
95 yr
96 is the year 1901-1999. Input
97 datofirst
98 is the number of days since January 1, 1901, up to, but not
99 including, January 1 of the year specified. Output
100
101
102 :Entry: dayr_clk: 02/06/84 datebin_$dayr_clk
103
104
105 Function: returns the day of the year 1-366 given a calendar clock
106 reading. If clock is invalid, -1 is returned.
107
108
109 Syntax:
110 declare datebin_$dayr_clk entry fixed bin71 fixed bin;
111 call datebin_$dayr_clk clock dayr;
112
113
114 Arguments:
115 clock
116 is a calendar clock reading with the number of microseconds since
117 0000 GMT January 1, 1901. Input
118 dayr
119 is the day of the year 1-366. Output
120
121
122 :Entry: dayr_mo: 02/06/84 datebin_$dayr_mo
123
124
125 Function: returns the day of the year when given a month, day, and
126 year.
127
128
129 Syntax:
130 declare datebin_$dayr_mo entry fixed bin fixed bin fixed bin
131 fixed bin;
132 call datebin_$dayr_mo mo da yr dayr;
133
134
135 Arguments:
136 mo
137 is the month 1-12. Input
138 da
139 is the day of the month 1-31. Input
140 yr
141 is the year 1901-1999. Input
142 dayr
143 is the day of the year 1-366. Output
144
145
146 :Entry: following_midnight: 02/06/84 datebin_$following_midnight
147
148
149 Function: given a clock reading, returns a clock reading for midnight
150 local time of that day.
151
152
153 Syntax:
154 declare datebin_$following_midnight entry fixed bin71
155 fixed bin71;
156 call datebin_$following_midnight oldclock clock;
157
158
159 Arguments:
160 oldclock
161 is a calendar clock reading in microseconds since January 1, 1901,
162 0000 GMT. Input
163 clock
164 is a calendar clock reading with the number of microseconds since
165 0000 GMT January 1, 1901. Output
166
167
168 :Entry: last_midnight: 02/06/84 datebin_$last_midnight
169
170
171 Function: returns a clock reading for the midnight local time
172 preceding the current day.
173
174
175 Syntax:
176 declare datebin_$last_midnight entry fixed bin71;
177 call datebin_$last_midnight clock;
178
179
180 Arguments:
181 clock
182 is a calendar clock reading with the number of microseconds since
183 0000 GMT January 1, 1901. Output
184
185
186 :Entry: next_shift_change: 02/06/84 datebin_$next_shift_change
187
188
189 Function: given a clock reading, returns the time of the next shift
190 change, the current shift, and the new shift.
191
192
193 Syntax:
194 declare datebin_$next_shift_change entry fixed bin71 fixed bin71
195 fixed bin fixed bin;
196 call datebin_$next_shift_change clock newclock shift newshift;
197
198
199 Arguments:
200 clock
201 is a calendar clock reading with the number of microseconds since
202 0000 GMT January 1, 1901. Input
203 newclock
204 is the time the shift changes next after clock. Output
205 shift
206 is the current shift at time clock. Output
207 newshift
208 is the shift that begins at time newclock. Output
209
210
211 :Entry: preceding_midnight: 02/06/84 datebin_$preceding_midnight
212
213
214 Function: given a clock reading, returns a clock reading for midnight
215 local time of the preceding day.
216
217
218 Syntax:
219 declare datebin_$preceding_midnight entry fixed bin71
220 fixed bin71;
221 call datebin_$preceding_midnight oldclock clock;
222
223
224 Arguments:
225 oldclock
226 is a calendar clock reading in microseconds since January 1, 1901,
227 0000 GMT. Input
228 clock
229 is a calendar clock reading with the number of microseconds since
230 0000 GMT January 1, 1901. Output
231
232
233 :Entry: revert: 02/06/84 datebin_$revert
234
235
236 Function returns a calendar clock reading for the month, day, year,
237 hour, minute, and second specified.
238
239
240 Syntax:
241 declare datebin_$revert entry fixed bin fixed bin fixed bin
242 fixed bin fixed bin fixed bin fixed bin71;
243 call datebin_$revert mo da yr hr min sec clock;
244
245
246 Arguments:
247 mo
248 is the month 1-12. Input
249 da
250 is the day of the month 1-31. Input
251 yr
252 is the year 1901-1999. Input
253 hr
254 is the hour of the day 0-23. Input
255
256
257 min
258 is the minute of the hour 0-59. Input
259 sec
260 is the second of the minute 0-59. Input
261 clock
262 is a calendar clock reading with the number of microseconds since
263 0000 GMT January 1, 1901. Output
264
265
266 :Entry: revertabs: 02/06/84 datebin_$revertabs
267
268
269 Function: returns a calendar clock reading given the number of days
270 since January 1, 1901.
271
272
273 Syntax:
274 declare datebin_$revertabs entry fixed bin fixed bin71;
275 call datebin_$revertabs absda clock;
276
277
278 Arguments:
279 absda
280 is the number of the days the clock reading represents with
281 January 1 1901 = 1. Input
282 clock
283 is a calendar clock reading with the number of microseconds since
284 0000 GMT January 1, 1901. Output
285
286
287 :Entry: shift: 02/06/84 datebin_$shift
288
289
290 Function: returns the shift given a calendar clock reading. If clock
291 is invalid, -1 is returned.
292
293
294 Syntax:
295 declare datebin_$shift fixed bin71 fixed bin;
296 call datebin_$shift clock s;
297
298
299 Arguments:
300 clock
301 is a calendar clock reading with the number of microseconds since
302 0000 GMT January 1, 1901. Input
303 s
304 is the shift, as defined in installation_parms. Output
305
306
307 :Entry: this_midnight: 02/06/84 datebin_$this_midnight
308
309
310 Function: returns a clock reading for midnight local time of the
311 current day.
312
313
314 Syntax:
315 declare datebin_$this_midnight entry fixed bin71;
316 call datebin_$this_midnight clock;
317
318
319 Arguments:
320 clock
321 is a calendar clock reading with the number of microseconds since
322 0000 GMT January 1, 1901. Output
323
324
325 :Entry: time: 02/06/84 datebin_$time
326
327
328 Function: returns the hour, minute and second given a calendar clock
329 reading. If clock is invalid, hr, min, and sec are -1.
330
331
332 Syntax:
333 declare datebin_$time entry fixed bin71 fixed bin fixed bin
334 fixed bin;
335 call datebin_$time clock hr min sec;
336
337
338 Arguments:
339 clock
340 is a calendar clock reading with the number of microseconds since
341 0000 GMT January 1, 1901. Input
342 hr
343 is the hour of the day 0-23. Output
344 min
345 is the minute of the hour 0-59. Output
346 sec
347 is the second of the minute 0-59. Output
348
349
350 :Entry: wkday: 02/06/84 datebin_$wkday
351
352
353 Function: returns the day of the week Monday = 1 ... Sunday = 7
354 given a calendar clock reading. If clock is invalid, 0 is returned.
355
356
357 Syntax:
358 declare datebin_$wkday entry fixed bin71 fixed bin;
359 call datebin_$wkday clock wkday;
360
361
362 Arguments:
363 clock
364 is a calendar clock reading with the number of microseconds since
365 0000 GMT January 1, 1901. Input
366 wkday
367 is the day of the week 1 = Monday 7 = Sunday. Output