home *** CD-ROM | disk | FTP | other *** search
- ;----------------------------------------------------------------------------
- ; Copyright(C) 1996, The AEGiS Corporation
- ;----------------------------------------------------------------------------
- ;
- ; FUNCTION DosToUnix()
- ;
- ; Convert a DOS date (Date & Time) to an UNIX Date (count of seconds since
- ; midnight 01/01/70)
- ;
- ;----------------------------------------------------------------------------
- #lib
- #nouser
-
- Declare Function DosToUnix(Date DateValue, Time TimeValue) UNSIGNED
-
- ;--------------------------------------------------------------------------
- ; DOSdate&time -> UNIXdate&time
- ;
- Function DosToUnix(Date DateValue, Time TimeValue) UNSIGNED
- int tyear
- int tday
- int tmonth
- unsigned dat
-
- tday = day(DateValue)
- tmonth = month(DateValue)
- tyear = year(DateValue)-1968
-
- if (tyear % 4 = 0) then
- select case tmonth
- case 2
- tday = tday + 31
- case 3
- tday = tday + 60
- case 4
- tday = tday + 91
- case 5
- tday = tday + 121
- case 6
- tday = tday + 152
- case 7
- tday = tday + 182
- case 8
- tday = tday + 213
- case 9
- tday = tday + 244
- case 10
- tday = tday + 274
- case 11
- tday = tday + 305
- case 12
- tday = tday + 335
- end select
- else
- select case tmonth
- case 2
- tday = tday + 31
- case 3
- tday = tday + 59
- case 4
- tday = tday + 90
- case 5
- tday = tday + 120
- case 6
- tday = tday + 151
- case 7
- tday = tday + 181
- case 8
- tday = tday + 212
- case 9
- tday = tday + 243
- case 10
- tday = tday + 273
- case 11
- tday = tday + 304
- case 12
- tday = tday + 334
- end select
- end if
-
- dat = tday * 86400 + (tyear - 2) * 365 * 86400 + (tyear/4)*86400 + TimeValue
- DosToUnix = dat
- EndFunc
-
-