! Copyright (C) 2008, 2010 Slava Pestov, Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors arrays calendar calendar.format.macros
-combinators io io.streams.string kernel math math.functions
-math.order math.parser math.parser.private present sequences
-typed ;
+combinators formatting io io.streams.string kernel math
+math.functions math.order math.parser present sequences typed ;
IN: calendar.format
: pad-00 ( n -- str ) number>string 2 CHAR: 0 pad-head ;
! algorithm to detect infinite decimals (e.g 1/3)
: write-rfc3339-seconds ( timestamp -- )
second>> 1 mod [
- >float "%.6f" format-float [ CHAR: 0 = ] trim
+ "%.6f" sprintf [ CHAR: 0 = ] trim
dup length 1 > [ write ] [ drop ] if
] unless-zero ;