home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 3 / PDCD_3.iso / pocketbk / utilsf / login / timelib.opl < prev    next >
Text File  |  1995-03-14  |  3KB  |  171 lines

  1.  
  2.  
  3. REM *********************************
  4. REM * TIMELIB                       *
  5. REM *-------------------------------*
  6. REM * A LIBRARY OF TIME FUNCTIONS   *
  7. REM * ORIGINALY CODED FOR THE LZ    *
  8. REM * AND ADAPTED FOR THE SERIES 3  *
  9. REM * MANY OF THE FUNCTIONS WERE    *
  10. REM * MADE TO OBTAIN DATES IN FRENCH*
  11. REM * FOR FRENCH LANGUAGE APPLICATIO*
  12. REM * ------------------------------*
  13. REM *********************************
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20. proc test:
  21.   print datimf$:
  22.   get
  23. endp
  24.  
  25.  
  26. proc HRS$:(S)
  27. LOCAL TC,HC,MC,SC,T$(16),X
  28.   TC=S
  29.   HC=TC/3600 :X=HC-INT(HC) :HC=INT(HC)
  30.   MC=X*60 :X=MC-INT(MC) :MC=INT(MC)
  31.   SC=INT(X*60)
  32.   T$=NUM$(HC,-4)+"h "+NUM$(MC,-2)+"m "+NUM$(SC,-2)+"s"
  33.   RETURN T$
  34.   
  35. endp
  36.  
  37.  
  38. PROC hrslong$:(s&)
  39.     LOCAL TC&,HC&,MC&,SC&,T$(26),X&
  40.   TC&=S&
  41.   HC&=TC&/3600 :mc&=mod&:(tc&,int(3600))/60
  42.   SC&=mod&:(tc&,int(60))
  43.   T$=NUM$(HC&,-4)+"h "+NUM$(MC&,-2)+"m "+NUM$(SC&,-2)+"s"
  44.   RETURN T$
  45.   
  46. endp
  47.  
  48. REM
  49. REM MODULO FUNCTION
  50. REM
  51.  
  52.  
  53. Proc mod&:(a&,b&)
  54.     return a&-(a&/b&)*b&
  55. ENDP
  56.  
  57.  
  58. REM
  59. REM CALCULATE DIFF IN SECONDS BETWEEN TWO TIMES
  60. REM
  61.  
  62.  
  63. proc hmsop:(H1,MN1,S1,H2,MN2,S2)
  64.  
  65. REM HMSOP
  66. REM 12/16/89
  67. REM CALCUL NB DE SECONDES ENTRE DEUX INTERVALS
  68.  
  69.  
  70. LOCAL SEC1,SEC2,SECT
  71.  
  72.  
  73. SEC1=H1*3600+MN1*60+S1
  74. SEC2=H2*3600+MN2*60+S2
  75.  
  76. SECT=SEC2-SEC1
  77. IF SECT < 0
  78.   SECT=SECT+86400
  79. ENDIF
  80. RETURN ABS(SECT)
  81.  
  82. endp
  83.  
  84. proc hmsop:(H1,MN1,S1,H2,MN2,S2)
  85.  
  86. REM HMSOP
  87. REM 12/16/89
  88. REM CALCUL NB DE SECONDES ENTRE DEUX INTERVALS
  89.  
  90.  
  91. LOCAL SEC1,SEC2,SECT
  92.  
  93.  
  94. SEC1=H1*3600+MN1*60+S1
  95. SEC2=H2*3600+MN2*60+S2
  96.  
  97. SECT=SEC2-SEC1
  98. IF SECT < 0
  99.   SECT=SECT+86400
  100. ENDIF
  101. RETURN ABS(SECT)
  102.  
  103. endp
  104.  
  105. REM
  106. REM OBTAIN FRENCH DATE$ WITH sec& SECONDS
  107. REM
  108.  
  109. PROC DAT$:(sec&) REM DATE AVEC DATETOSECS
  110.   local d%,m%,y%,h%,n%,s%,jul%,m$(3),j$(3),x,y,z,z$(32)
  111.   secstodate sec&,y%,m%,d%,h%,n%,s%,jul%
  112.   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"
  113.   return z$
  114. endp
  115.   
  116.   
  117. REM
  118. REM OBTAIN DATIM$ IN FRENCH
  119. REM  
  120.  
  121.  
  122. PROC datimf$:
  123.     local d$(30)
  124.     d$=dayname$:(dow(day,month,year))+" "+gen$(day,-2)+" "+month$:(month)+" "+gen$(year,-4)+" "+right$(datim$,8)
  125.     return d$
  126. Endp
  127.  
  128. REM
  129. REM DAYNAME$ IN FRENCH
  130. REM
  131.  
  132. proc dayname$:(x%)
  133.   local j$(7,3)
  134.     j$(1)="lun" :j$(2)="mar" :j$(3)="mer"
  135.     j$(4)="jeu" :j$(5)="ven" :j$(6)="sam"
  136.     j$(7)="dim"
  137.   return j$(x%)
  138.   
  139. endp
  140.  
  141. REM
  142. REM MONTH$ IN FRENCH
  143. REM
  144.  
  145. proc month$:(x%)
  146.   local m$(12,3)
  147.     m$(1)="jan" :m$(2)="fŵv" :m$(3)="mar"
  148.     m$(4)="avr" :m$(5)="mai" :m$(6)="jun"
  149.     m$(7)="jul" :m$(8)="ao„" :m$(9)="sep"
  150.     m$(10)="oct" :m$(11)="nov" :m$(12)="dŵc"
  151.   return m$(x%)
  152. endp
  153.  
  154. REM
  155. REM GET CURRENT SECOND IN DATETOSECS FORMAT
  156. REM
  157.  
  158.  
  159. proc secnow:
  160.   return datetosecs(year,month,day,hour,minute,second)
  161. endp
  162.  
  163. REM
  164. REM OBTAIN CURRENT DAY IN DAYS() FORMAT
  165. REM
  166.  
  167. proc today:
  168.   return days(day,month,year)
  169. endp
  170.  
  171.