текущий год и количество дней в месяце - PullRequest
6 голосов
/ 20 апреля 2011

У меня два вопроса:

Как узнать текущий год (не дату) в haskell?

Как я могу получить количество дней в каком-то месяце или году? Например 04.2011 получил 30 дней.

1 Ответ

5 голосов
/ 20 апреля 2011

Это даст вам год, месяц и день:

import Data.Time.Clock
import Data.Time.Calendar

date :: IO (Integer,Int,Int) -- :: (year,month,day)
date = getCurrentTime >>= return . toGregorian . utctDay

Источник: http://www.haskell.org/haskellwiki/Date

В Date.Time.Calendar есть функция gregorianMonthLength с типом Integer ->Int -> Int.Он принимает год и месяц в качестве аргументов, возвращает количество дней, как вам нужно.http://www.haskell.org/ghc/docs/7.0.2/html/libraries/time-1.2.0.3/Data-Time-Calendar.html

Полный пример:

import Data.Time.Clock
import Data.Time.Calendar

date :: IO (Integer,Int,Int) -- :: (year,month,day)
date = getCurrentTime >>= return . toGregorian . utctDay

main = do
    (year, month, day) <- date
    putStrLn $ "Days in this month: " ++ (show $ gregorianMonthLength year month)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...