add word to convert timevals to unix time, add utility words
parent
9a036b2463
commit
02bb3063ff
|
@ -165,7 +165,15 @@ HELP: milliseconds
|
||||||
{ $values { "x" number } { "duration" duration } }
|
{ $values { "x" number } { "duration" duration } }
|
||||||
{ $description "Creates a duration object with the specified number of milliseconds." } ;
|
{ $description "Creates a duration object with the specified number of milliseconds." } ;
|
||||||
|
|
||||||
{ years months days hours minutes seconds milliseconds } related-words
|
HELP: microseconds
|
||||||
|
{ $values { "x" number } { "duration" duration } }
|
||||||
|
{ $description "Creates a duration object with the specified number of microseconds." } ;
|
||||||
|
|
||||||
|
HELP: nanoseconds
|
||||||
|
{ $values { "x" number } { "duration" duration } }
|
||||||
|
{ $description "Creates a duration object with the specified number of nanoseconds." } ;
|
||||||
|
|
||||||
|
{ years months days hours minutes seconds milliseconds microseconds nanoseconds } related-words
|
||||||
|
|
||||||
HELP: leap-year?
|
HELP: leap-year?
|
||||||
{ $values { "obj" object } { "?" "a boolean" } }
|
{ $values { "obj" object } { "?" "a boolean" } }
|
||||||
|
@ -263,7 +271,27 @@ HELP: duration>milliseconds
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
{ duration>years duration>months duration>days duration>hours duration>minutes duration>seconds duration>milliseconds } related-words
|
HELP: duration>microseconds
|
||||||
|
{ $values { "duration" duration } { "x" number } }
|
||||||
|
{ $description "Calculates the length of a duration in microseconds." }
|
||||||
|
{ $examples
|
||||||
|
{ $example "USING: calendar prettyprint ;"
|
||||||
|
"6 seconds duration>microseconds ."
|
||||||
|
"6000000"
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
|
||||||
|
HELP: duration>nanoseconds
|
||||||
|
{ $values { "duration" duration } { "x" number } }
|
||||||
|
{ $description "Calculates the length of a duration in nanoseconds." }
|
||||||
|
{ $examples
|
||||||
|
{ $example "USING: calendar prettyprint ;"
|
||||||
|
"6 seconds duration>nanoseconds ."
|
||||||
|
"6000000000"
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
|
||||||
|
{ duration>years duration>months duration>days duration>hours duration>minutes duration>seconds duration>milliseconds duration>microseconds duration>nanoseconds } related-words
|
||||||
|
|
||||||
|
|
||||||
HELP: time-
|
HELP: time-
|
||||||
|
@ -528,6 +556,8 @@ ARTICLE: "using-durations" "Using durations"
|
||||||
{ $subsection minutes }
|
{ $subsection minutes }
|
||||||
{ $subsection seconds }
|
{ $subsection seconds }
|
||||||
{ $subsection milliseconds }
|
{ $subsection milliseconds }
|
||||||
|
{ $subsection microseconds }
|
||||||
|
{ $subsection nanoseconds }
|
||||||
{ $subsection instant }
|
{ $subsection instant }
|
||||||
"Converting a duration to a number:"
|
"Converting a duration to a number:"
|
||||||
{ $subsection duration>years }
|
{ $subsection duration>years }
|
||||||
|
@ -536,7 +566,9 @@ ARTICLE: "using-durations" "Using durations"
|
||||||
{ $subsection duration>hours }
|
{ $subsection duration>hours }
|
||||||
{ $subsection duration>minutes }
|
{ $subsection duration>minutes }
|
||||||
{ $subsection duration>seconds }
|
{ $subsection duration>seconds }
|
||||||
{ $subsection duration>milliseconds } ;
|
{ $subsection duration>milliseconds }
|
||||||
|
{ $subsection duration>microseconds }
|
||||||
|
{ $subsection duration>nanoseconds } ;
|
||||||
|
|
||||||
ARTICLE: "relative-timestamps" "Relative timestamps"
|
ARTICLE: "relative-timestamps" "Relative timestamps"
|
||||||
"In the future:"
|
"In the future:"
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: arrays kernel math math.functions namespaces sequences
|
USING: arrays kernel math math.functions namespaces sequences
|
||||||
strings system vocabs.loader threads accessors combinators
|
strings system vocabs.loader threads accessors combinators
|
||||||
locals classes.tuple math.order summary
|
locals classes.tuple math.order summary structs
|
||||||
combinators.short-circuit ;
|
combinators.short-circuit ;
|
||||||
IN: calendar
|
IN: calendar
|
||||||
|
|
||||||
|
@ -129,6 +129,8 @@ PRIVATE>
|
||||||
: minutes ( x -- duration ) instant clone swap >>minute ;
|
: minutes ( x -- duration ) instant clone swap >>minute ;
|
||||||
: seconds ( x -- duration ) instant clone swap >>second ;
|
: seconds ( x -- duration ) instant clone swap >>second ;
|
||||||
: milliseconds ( x -- duration ) 1000 / seconds ;
|
: milliseconds ( x -- duration ) 1000 / seconds ;
|
||||||
|
: microseconds ( x -- duration ) 1000000 / seconds ;
|
||||||
|
: nanoseconds ( x -- duration ) 1000000000 / seconds ;
|
||||||
|
|
||||||
GENERIC: leap-year? ( obj -- ? )
|
GENERIC: leap-year? ( obj -- ? )
|
||||||
|
|
||||||
|
@ -261,6 +263,8 @@ M: duration <=> [ duration>years ] compare ;
|
||||||
: duration>minutes ( duration -- x ) duration>years minutes-per-year * ;
|
: duration>minutes ( duration -- x ) duration>years minutes-per-year * ;
|
||||||
: duration>seconds ( duration -- x ) duration>years seconds-per-year * ;
|
: duration>seconds ( duration -- x ) duration>years seconds-per-year * ;
|
||||||
: duration>milliseconds ( duration -- x ) duration>seconds 1000 * ;
|
: duration>milliseconds ( duration -- x ) duration>seconds 1000 * ;
|
||||||
|
: duration>microseconds ( duration -- x ) duration>seconds 1000000 * ;
|
||||||
|
: duration>nanoseconds ( duration -- x ) duration>seconds 1000000000 * ;
|
||||||
|
|
||||||
GENERIC: time- ( time1 time2 -- time3 )
|
GENERIC: time- ( time1 time2 -- time3 )
|
||||||
|
|
||||||
|
@ -398,6 +402,10 @@ PRIVATE>
|
||||||
: time-since-midnight ( timestamp -- duration )
|
: time-since-midnight ( timestamp -- duration )
|
||||||
dup midnight time- ;
|
dup midnight time- ;
|
||||||
|
|
||||||
|
: timeval>unix-time ( timeval -- timestamp )
|
||||||
|
[ timeval-sec seconds ] [ timeval-usec microseconds ] bi
|
||||||
|
time+ unix-1970 time+ >local-time ;
|
||||||
|
|
||||||
M: timestamp sleep-until timestamp>millis sleep-until ;
|
M: timestamp sleep-until timestamp>millis sleep-until ;
|
||||||
|
|
||||||
M: duration sleep hence sleep-until ;
|
M: duration sleep hence sleep-until ;
|
||||||
|
|
Loading…
Reference in New Issue