|
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 - 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◀