home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a009 / 6.ddi / SAMPLE.LIF / TIME.PRG < prev    next >
Encoding:
Text File  |  1991-04-14  |  1.9 KB  |  90 lines

  1. /***
  2. *
  3. *  Time.prg
  4. *  Sample user-defined functions for manipulating time strings
  5. *
  6. *  Copyright, Nantucket Corporation, 1990
  7. *
  8. *  NOTE: compile with /n/w/a/m
  9. */
  10.  
  11.  
  12.  
  13. /***
  14. *  SecondsAsDays( <nSeconds> ) --> nDays
  15. *  Convert numeric seconds to days
  16. *
  17. *  NOTE: Same as DAYS() in Examplep.prg
  18. */
  19. FUNCTION SecondsAsDays( nSeconds )
  20.    RETURN INT(nSeconds / 86400)
  21.  
  22.  
  23.  
  24. /***
  25. *  TimeAsAMPM( <cTime> ) --> cTime
  26. *  Convert a time string to 12-hour format
  27. *
  28. *  NOTE:  Same as AMPM() in Examplep.prg
  29. */
  30. FUNCTION TimeAsAMPM( cTime )
  31.  
  32.    IF VAL(cTime) < 12
  33.       cTime += " am"
  34.    ELSEIF VAL(cTime) = 12
  35.       cTime += " pm"
  36.    ELSE
  37.       cTime := STR(VAL(cTime) - 12, 2) + SUBSTR(cTime, 3) + " pm"
  38.    ENDIF
  39.  
  40.    RETURN cTime
  41.  
  42.  
  43.  
  44. /***
  45. *  TimeAsSeconds( <cTime> ) --> nSeconds
  46. *  Convert a time string to number of seconds from midnight
  47. *
  48. *  NOTE: Same as SECS() in Examplep.prg
  49. */
  50. FUNCTION TimeAsSeconds( cTime )
  51.    RETURN VAL(cTime) * 3600 + VAL(SUBSTR(cTime, 4)) * 60 +;
  52.           VAL(SUBSTR(cTime, 7))
  53.  
  54.  
  55.  
  56. /***
  57. *  TimeAsString( <nSeconds> ) --> cTime
  58. *  Convert numeric seconds to a time string
  59. *
  60. *  NOTE: Same as TSTRING() in Examplep.prg
  61. */
  62. FUNCTION TimeAsString( nSeconds )
  63.    RETURN StrZero(INT(Mod(nSeconds / 3600, 24)), 2, 0) + ":" +;
  64.           StrZero(INT(Mod(nSeconds / 60, 60)), 2, 0) + ":" +;
  65.           StrZero(INT(Mod(nSeconds, 60)), 2, 0)
  66.  
  67.  
  68.  
  69. /***
  70. *  TimeDiff( <cStartTime>, <cEndTime> ) --> cDiffTime
  71. *  Return the difference between two time strings in the form hh:mm:ss
  72. *
  73. *  NOTE: Same as ELAPTIME() in Examplep.prg
  74. */
  75. FUNCTION TimeDiff( cStartTime, cEndTime )
  76.    RETURN TimeAsString(IF(cEndTime < cStartTime, 86400 , 0) +;
  77.           TimeAsSeconds(cEndTime) - TimeAsSeconds(cStartTime))
  78.  
  79.  
  80.  
  81. /***
  82. *  TimeIsValid( <cTime> ) --> lValid
  83. *  Validate a time string
  84. *
  85. */
  86. FUNCTION TimeIsValid( cTime )
  87.    RETURN VAL(cTime) < 24 .AND. VAL(SUBSTR(cTime, 4)) < 60 .AND.;
  88.           VAL(SUBSTR(cTime, 7)) < 60
  89.  
  90.