Skip to content

Instantly share code, notes, and snippets.

@jutememo
Created November 8, 2010 10:20
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save jutememo/667551 to your computer and use it in GitHub Desktop.
import Data.Time
import System.Locale
dayAndTime :: ZonedTime -> (Day, TimeOfDay)
dayAndTime zt = let lt = zonedTimeToLocalTime zt
day = localDay lt
time = localTimeOfDay lt
in (day, time)
day = fst . dayAndTime
time = snd . dayAndTime
diffTime :: TimeOfDay -> TimeOfDay -> TimeOfDay
diffTime t1 t2 = timeToTimeOfDay
(timeOfDayToTime t2 - timeOfDayToTime t1)
main = do
-- Day 型の値の生成
print $ fromGregorian 2010 4 1
-- 2010.4.1 の 100 日後は?
print $ addDays 100 $ fromGregorian 2010 4 1
-- 2010.4.1 から大晦日までは何日?
print $ fromGregorian 2010 12 31 `diffDays` fromGregorian 2010 4 1
-- 現在の時刻を取得
now <- getZonedTime
-- 現在の日付から 100 日後は?
print $ addDays 100 (day now)
-- 現在から大晦日までは何日?
print $ fromGregorian 2010 12 31 `diffDays` (day now)
-- 後何分?
print $ diffTime (time now) (TimeOfDay 22 0 0)
-- フォーマット
print $ formatTime defaultTimeLocale "%Y--%m--%d"
$ fromGregorian 2010 4 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment