2008-10-06 19:18:33 -04:00
|
|
|
! Copyright (C) 2008 Doug Coleman.
|
|
|
|
! See http://factorcode.org/license.txt for BSD license.
|
2008-10-06 18:59:20 -04:00
|
|
|
USING: alien alien.c-types alien.syntax arrays calendar
|
2008-10-06 19:18:33 -04:00
|
|
|
kernel math unix unix.time namespaces system ;
|
2007-09-20 18:09:08 -04:00
|
|
|
IN: calendar.unix
|
|
|
|
|
2008-10-21 05:19:50 -04:00
|
|
|
: timeval>seconds ( timeval -- seconds )
|
2008-10-06 19:03:56 -04:00
|
|
|
[ timeval-sec seconds ] [ timeval-usec microseconds ] bi
|
2008-10-21 05:19:50 -04:00
|
|
|
time+ ;
|
|
|
|
|
|
|
|
: timeval>unix-time ( timeval -- timestamp )
|
|
|
|
timeval>seconds since-1970 ;
|
2008-10-06 19:03:56 -04:00
|
|
|
|
2008-10-21 05:19:50 -04:00
|
|
|
: timespec>seconds ( timespec -- seconds )
|
2008-10-06 19:03:56 -04:00
|
|
|
[ timespec-sec seconds ] [ timespec-nsec nanoseconds ] bi
|
2008-10-21 05:19:50 -04:00
|
|
|
time+ ;
|
|
|
|
|
|
|
|
: timespec>unix-time ( timespec -- timestamp )
|
|
|
|
timespec>seconds since-1970 ;
|
2008-10-06 19:03:56 -04:00
|
|
|
|
2008-03-19 20:15:32 -04:00
|
|
|
: get-time ( -- alien )
|
2007-09-20 18:09:08 -04:00
|
|
|
f time <uint> localtime ;
|
|
|
|
|
2008-03-19 20:15:32 -04:00
|
|
|
: timezone-name ( -- string )
|
2007-09-20 18:09:08 -04:00
|
|
|
get-time tm-zone ;
|
|
|
|
|
2008-04-02 19:28:55 -04:00
|
|
|
M: unix gmt-offset ( -- hours minutes seconds )
|
2008-03-19 20:15:32 -04:00
|
|
|
get-time tm-gmtoff 3600 /mod 60 /mod ;
|