(************************************************************ difftime.ml Created : Fri Sep 13 01:42:49 2002 Last modified: Fri Sep 13 03:05:08 2002 Compile: ocamlopt.opt unix.cmxa difftime.ml -o difftime # ************************************************************) (** 時間の計算をしてみよう。 @author Takashi Masuyama @see Unix.mktime @see Unix.tm *) let one_day = 24.0 *. 60.0 *. 60.0 (* sec *) open Unix (** 年はtoupleで表す。 @param (ty,tm,td) 終了日 (引くほう) @param (fy,fm,fd) 終了日 (引かれるほう) *) let difftime (ty,tm,td) (fy,fm,fd) = let from_tm = { tm_sec = 0; tm_min = 0; tm_hour = 0; tm_mday = fd; tm_mon = fm - 1; tm_year = fy - 1900; tm_wday = 0; tm_yday = 0; tm_isdst = false; } in let to_tm = { tm_sec = 0; tm_min = 0; tm_hour = 0; tm_mday = td; tm_mon = tm - 1; tm_year = ty - 1900; tm_wday = 0; tm_yday = 0; tm_isdst = false; } in let from_ft = fst (mktime from_tm) in let to_ft = fst (mktime to_tm) in int_of_float ((to_ft -. from_ft)/.one_day) (* main 関数を書こう *)