|
|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 2304 (0x900)
Types: TextFile
Names: »systidtx «
└─⟦110021343⟧ Bits:30007476 RC8000 Backup tape fra HT's bus-radio system
└─⟦a957ba283⟧
└─⟦this⟧ »systidtx «
\f
message real procedure systid side 1 - 780110/cl;
real procedure systid(dato,kl);
value dato,kl;
integer dato,kl;
<* proceduren konverterer dato og klokkeslet til sekunder siden
midnat 1967.12.31. Proceduren kan opfattes som den modsatte
til systime(4, , ).
kun tidspunkter mellem 680101 000000 og 991231 235959
kan konverteres
dato checkes for om 68<= år <= 99 og 1<= md <= 12
dage samt klokkeslet checkes ikke, hvilket betyder at f.eks.
781032 101735 opfattes som lovlig (= 781101 101735).
kald: systid(dato,kl)
systid (retur,real) det konverterede tidspunkt,
sekunder siden midnat 67.12.31.
dato (kald,integer) dato på formen
(år mod 100)*10000 + md*100 + dg
der ønskes konverteret.
kl (kald,integer) klokkeslet på formen
time*10000 + min*100 + sek
der ønskes konverteret.
fejlreaktioner:
ved fejl returneres med systid < 0.0 (-1.0), idet alle
lovlige tidspunkter giver systid >= 0.0
*>
\f
message real procedure systid side 2 - 790105/cl;
begin
integer år,md,dg,time,min,sek,antal_år,antal_skudår,antal_dage;
integer trapm;
real å,d,t;
å:= 31536000.0; d:= 86400.0; t:= -1.0;
trapm:= trapmode;
trap(slut); trapmode:= 1 shift 4 + 1 shift 7;
år:= dato//10000; md:= (dato mod 10000)//100; dg:= dato mod 100;
time:= kl//10000; min:= (kl mod 10000)//100; sek:= kl mod 100;
if 99<år or md<1 or 12<md then
goto slut;
if år<68 then år:=år+100;
antal_skudår:= -entier((68-år)/4);
antal_år:= år-68;
antal_dage:= dg + (case md of (0,31,59,90,120,151,181,212,243,
273,304,334)) + (if md>2 and år mod 4 = 0 then 1 else 0) - 1;
t:= 0.0 + å*antal_år + d*antal_skudår + d*antal_dage
+ 3600.0*time + 60.0*min + sek;
slut:
trapmode := trapm;
systid:= t;
end;
▶EOF◀