日付処理サンプル

練習がてらいくつか書いてみました。

-- 現在時刻の取得(UTC)
import Data.Time

main = do t <- getCurrentTime
          putStr $ show t
-- 現在時刻の取得
import Data.Time

main = do t <- getCurrentTime
          tz <- getCurrentTimeZone
          putStr $ show $ utcToLocalTime tz t
-- 現在日付の取得
import Data.Time

main = do t <- getCurrentTime
          tz <- getCurrentTimeZone
          putStr $ show $ localDay $ utcToLocalTime tz t
-- 3日後の取得
import Data.Time

main = do t <- getCurrentTime
          tz <- getCurrentTimeZone
          putStr $ show $ addDays 3 (localDay $ utcToLocalTime tz t)
-- 現在年の取得
import Data.Time

main = do t <- getCurrentTime
          tz <- getCurrentTimeZone
          putStr $ show $ (\(y,_,_)->y) $ toGregorian (localDay $ utcToLocalTime tz t)
-- 日付の差を取得
import Data.Time

day1 = fromGregorian 2008 1 2
day2 = fromGregorian 2008 3 3

main = do print $ diffDays day1 day2 -- -61
          print $ diffDays day2 day1 -- 61
-- 閏年判定
import Data.Time

main = do print $ isLeapYear 2008 -- True
          print $ isLeapYear 2009 -- False