在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打印工作日?我认为最后一行代码也存在一些问题。

为什么不使用 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

最新更新