home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Datafile PD-CD 3
/
PDCD_3.iso
/
pocketbk
/
utilsf
/
login
/
timelib.opl
< prev
next >
Wrap
Text File
|
1995-03-14
|
3KB
|
171 lines
REM *********************************
REM * TIMELIB *
REM *-------------------------------*
REM * A LIBRARY OF TIME FUNCTIONS *
REM * ORIGINALY CODED FOR THE LZ *
REM * AND ADAPTED FOR THE SERIES 3 *
REM * MANY OF THE FUNCTIONS WERE *
REM * MADE TO OBTAIN DATES IN FRENCH*
REM * FOR FRENCH LANGUAGE APPLICATIO*
REM * ------------------------------*
REM *********************************
proc test:
print datimf$:
get
endp
proc HRS$:(S)
LOCAL TC,HC,MC,SC,T$(16),X
TC=S
HC=TC/3600 :X=HC-INT(HC) :HC=INT(HC)
MC=X*60 :X=MC-INT(MC) :MC=INT(MC)
SC=INT(X*60)
T$=NUM$(HC,-4)+"h "+NUM$(MC,-2)+"m "+NUM$(SC,-2)+"s"
RETURN T$
endp
PROC hrslong$:(s&)
LOCAL TC&,HC&,MC&,SC&,T$(26),X&
TC&=S&
HC&=TC&/3600 :mc&=mod&:(tc&,int(3600))/60
SC&=mod&:(tc&,int(60))
T$=NUM$(HC&,-4)+"h "+NUM$(MC&,-2)+"m "+NUM$(SC&,-2)+"s"
RETURN T$
endp
REM
REM MODULO FUNCTION
REM
Proc mod&:(a&,b&)
return a&-(a&/b&)*b&
ENDP
REM
REM CALCULATE DIFF IN SECONDS BETWEEN TWO TIMES
REM
proc hmsop:(H1,MN1,S1,H2,MN2,S2)
REM HMSOP
REM 12/16/89
REM CALCUL NB DE SECONDES ENTRE DEUX INTERVALS
LOCAL SEC1,SEC2,SECT
SEC1=H1*3600+MN1*60+S1
SEC2=H2*3600+MN2*60+S2
SECT=SEC2-SEC1
IF SECT < 0
SECT=SECT+86400
ENDIF
RETURN ABS(SECT)
endp
proc hmsop:(H1,MN1,S1,H2,MN2,S2)
REM HMSOP
REM 12/16/89
REM CALCUL NB DE SECONDES ENTRE DEUX INTERVALS
LOCAL SEC1,SEC2,SECT
SEC1=H1*3600+MN1*60+S1
SEC2=H2*3600+MN2*60+S2
SECT=SEC2-SEC1
IF SECT < 0
SECT=SECT+86400
ENDIF
RETURN ABS(SECT)
endp
REM
REM OBTAIN FRENCH DATE$ WITH sec& SECONDS
REM
PROC DAT$:(sec&) REM DATE AVEC DATETOSECS
local d%,m%,y%,h%,n%,s%,jul%,m$(3),j$(3),x,y,z,z$(32)
secstodate sec&,y%,m%,d%,h%,n%,s%,jul%
z$=dayname$:(dow(d%,m%,y%))+" "+gen$(y%,-4)+" "+month$:(m%)+" "+gen$(d%,-2)+" "+gen$(h%,-2)+"h"+gen$(n%,-2)+"m"+gen$(s%,-2)+"s"
return z$
endp
REM
REM OBTAIN DATIM$ IN FRENCH
REM
PROC datimf$:
local d$(30)
d$=dayname$:(dow(day,month,year))+" "+gen$(day,-2)+" "+month$:(month)+" "+gen$(year,-4)+" "+right$(datim$,8)
return d$
Endp
REM
REM DAYNAME$ IN FRENCH
REM
proc dayname$:(x%)
local j$(7,3)
j$(1)="lun" :j$(2)="mar" :j$(3)="mer"
j$(4)="jeu" :j$(5)="ven" :j$(6)="sam"
j$(7)="dim"
return j$(x%)
endp
REM
REM MONTH$ IN FRENCH
REM
proc month$:(x%)
local m$(12,3)
m$(1)="jan" :m$(2)="fŵv" :m$(3)="mar"
m$(4)="avr" :m$(5)="mai" :m$(6)="jun"
m$(7)="jul" :m$(8)="ao„" :m$(9)="sep"
m$(10)="oct" :m$(11)="nov" :m$(12)="dŵc"
return m$(x%)
endp
REM
REM GET CURRENT SECOND IN DATETOSECS FORMAT
REM
proc secnow:
return datetosecs(year,month,day,hour,minute,second)
endp
REM
REM OBTAIN CURRENT DAY IN DAYS() FORMAT
REM
proc today:
return days(day,month,year)
endp