日付の取得

Haskell で日付を取得するには、Data.Time モジュールを利用する。getCurrentTime 関数で日時のデータを取得し、utctDay 関数でそれを Day 型のデータに変換する。Day型のデータは、getGregorian 関数で(年, 月, 日)のタプルに変換する。

Data.Time モジュールの関数は IO モナドの関数なので取扱いが少し面倒。IOモナドの関数はIOモナドの世界でしか動かない。具体的には main = do ... の中でしか使えない。一度入ったら出られないパラレルワールドのようなものだ。

1. hugs のプロンプトで動作確認する方法:

Hugs> :load Data.Time
Data.Time> do c <- getCurrentTime; print c
2009-09-06 07:24:31.884339 UTC

Data.Time> do c <- getCurrentTime; print (utctDay c)
2009-09-06

Data.Time> do c <- getCurrentTime; let (y,m,d) = toGregorian (utctDay c) in print y
2009

2. ファイルにプログラムを作成した場合:

Data.Time> :e date.hs

(date.hs の内容)
import Data.Time

main = do c <- getCurrentTime
          let (y,m,d) = toGregorian (utctDay c)
            in putStrLn  (show y ++ " nen " ++ show m ++ " gatu " ++ show d ++ " nichi")

Data.Time> :l date.hs
Main> main
2009 nen 9 gatu 6 nichi
[PR]
by tnomura9 | 2009-09-06 16:31 | Haskell | Comments(0)
<< 乱数発生器 九九掛け算表 >>