Date manipulation: Difference between revisions

→‎{{header|Tcl}}: + standard ML
(Rename Perl 6 -> Raku, alphabetize, minor clean-up)
(→‎{{header|Tcl}}: + standard ML)
Line 2,767:
08-MAR-09 05.30.00.000000000 AM US/ARIZONA
</pre>
 
={{header|Standard ML}}==
<lang Standard ML>
val smltime = fn input => (* parse given format *)
let
val x = String.fields (fn x=>x= #" ") input
val tmp = String.fields (fn x=> x= #":") (List.nth(x,3));
val h = (valOf(Int.fromString (hd tmp) )) + (if String.isSuffix "pm" (hd(tl tmp)) then 12 else 0 ) ;
val ms = (String.extract (hd (tl tmp), 0 ,SOME 2))^":00" ;
val mth = String.extract (hd x,0,SOME 3)
in
(* Sat is a dummy *)
Date.fromString ("Sat "^mth ^" " ^ (StringCvt.padLeft #"0" 2 (hd (tl x))) ^ " "^(StringCvt.padLeft #"0" 2 (Int.toString h))^":" ^ ms^" "^(List.nth(x,2)) )
end;
 
 
local
val date2real = Time.toReal o Date.toTime o valOf
val onehour = date2real ( Date.fromString "Mon Jan 01 23:59:59 1973" ) - ( date2real ( Date.fromString "Mon Jan 01 22:59:59 1973" )) ;
in
val hoursFrom = fn hours => fn from =>
(Date.fromTimeLocal o Time.fromReal)( ( date2real from) + hours * onehour );
end;
</lang>
output
<lang Standard ML>
hoursFrom 12.0 ( smltime "March 7 2009 7:30pm EST" ) ;
val it = Sun Mar 08 07:30:00 2009: Date.date
</lang>
 
=={{header|Tcl}}==
Anonymous user