用Haskell在第一个工作日显示月份

时间:2017-03-08 05:34:54

标签: haskell

我正在努力让Haskell在工作日的第一个月输出/打印。 我提出了以下代码:

import Data.Time.Calendar
import Data.Time.Calendar.WeekDate
import Data.Char
day=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]
year=2017
month=5

weekday = day!!(digitToInt(last(showWeekDate (fromGregorian year month 01)))

当我运行代码时,如何让Haskell打印工作日? 我认为最后一行代码还存在一些问题。

1 个答案:

答案 0 :(得分:1)

为什么不使用Data.Time.Format

import Data.Time.Format

weekDay = formatTime defaultTimeLocale "%a"

应该做的伎俩。我在公共汽车上,所以这段代码没有经过测试。

修改

测试✔

如果这是关于打印到stdout的问题,那么你必须在ghci中调用这个函数

ghci> let d = fromGregorian 2017 03 08
ghci> let weekday = formatTime defaultTimeLocale "%a"
ghci> weekday d
"Wed"

或具有主要功能

import Data.Time
import Data.Time.Format

main :: IO ()
main = print $ weekday d

d = fromGregorian 2017 03 08
weekday = formatTime defaultTimeLocale "%a"

然后你可以runhaskell或编译并运行并获得

Wed