factor/basis/calendar/unix/unix.factor

31 lines
920 B
Factor
Raw Normal View History

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
kernel math unix unix.time unix.types namespaces system
accessors classes.struct ;
2007-09-20 18:09:08 -04:00
IN: calendar.unix
2008-10-21 05:19:50 -04:00
: timeval>seconds ( timeval -- seconds )
[ sec>> seconds ] [ usec>> microseconds ] bi time+ ;
2008-10-21 05:19:50 -04:00
: timeval>unix-time ( timeval -- timestamp )
timeval>seconds since-1970 ;
2008-10-21 05:19:50 -04:00
: timespec>seconds ( timespec -- seconds )
[ sec>> seconds ] [ nsec>> nanoseconds ] bi time+ ;
2008-10-21 05:19:50 -04:00
: timespec>nanoseconds ( timespec -- seconds )
[ sec>> 1000000000 * ] [ nsec>> ] bi + ;
2008-10-21 05:19:50 -04:00
: timespec>unix-time ( timespec -- timestamp )
timespec>seconds since-1970 ;
: get-time ( -- alien )
f time <time_t> localtime tm memory>struct ;
2007-09-20 18:09:08 -04:00
: timezone-name ( -- string )
get-time zone>> ;
2007-09-20 18:09:08 -04:00
2008-04-02 19:28:55 -04:00
M: unix gmt-offset ( -- hours minutes seconds )
get-time gmtoff>> 3600 /mod 60 /mod ;