来年まであと何日?

30分プログラム、その677。来年まであと何日かを出力するプログラム。
恐しいことに、今年も終わりが見えてきました。
そのことについて考えるといろいろと後悔の念がでてきますが、とりあえず来年まで何日あるかを出力するプログラムを書いてみましょう。

使い方

*Main> main
81

ソースコード

import Data.Time
import Data.Time.Calendar
import Data.Time.LocalTime

nextYear :: Day -> Day
today    :: IO Day

nextYear day = fromGregorian (year+1) 1 1
    where (year,_,_) = toGregorian day

today = do tz <- getCurrentTimeZone
           t  <- getCurrentTime
           return $ localDay $ utcToLocalTime tz t

main = do t <- today
          let next = nextYear t
          print $ diffDays next t