Drkcore

07 07 2009 OCaml Tweet

OCamlで日付操作

週末にもぎったインゲンを茹でて食べたらめちゃうまだった。本には種まきしてから40-50日で収穫と書いてあったので、あれ、そういえば種まきしてから何日経ったかな?と調べたくなった(OCamlで)

種まきしてから40日後の日付を表示する。

#load "unix.cma";;
open Unix

let days = [| "Sun"; "Mon"; "Tue"; "Wed"; "Thu"; "Fri"; "Sat" |]
let months = [| "Jan"; "Feb"; "Mar"; "Apr"; "May"; "Jun";
                "Jul"; "Aug"; "Sep"; "Oct"; "Nov"; "Dec" |]

let format_time time =
  let tm = localtime time in
  Printf.sprintf "%s %s %2d %02d:%02d:%02d %04d"
    days.(tm.tm_wday)
    months.(tm.tm_mon)
    tm.tm_mday
    tm.tm_hour
    tm.tm_min
    tm.tm_sec
    (tm.tm_year + 1900)

let epoch_seconds date =
  Scanf.sscanf date "%04d-%02d-%02d"
    (fun yyyy mm dd ->
      fst (mktime {tm_sec=0; tm_min=0; tm_hour=0;
                        tm_mday=dd; tm_mon=mm-1; tm_year=yyyy-1900;
                        tm_wday=0; tm_yday=0; tm_isdst=false}));;

let date = epoch_seconds "2009-05-23";;
let interval = 40. *. 60. *. 60. *. 24.;;
let then' = date +. interval

let () =
  Printf.printf "harvest date is %s\n" (format_time then');

さてどうかな?

#   harvest date is Thu Jul  2 00:00:00 2009

pleacを参考に書いたのだけど結構長い。もうちょっと奇麗な書き方はあるに違いない。

それにしてもいんげんは今週中に収穫しないと固くなりそうだな。

About

  • もう5年目(wishlistありマス♡)
  • 最近はPythonとDeepLearning
  • 日本酒自粛中
  • ドラムンベースからミニマルまで
  • ポケモンGOゆるめ

Tag

Python Deep Learning javascript chemoinformatics Emacs sake and more...

Ad

© kzfm 2003-2021