是否有适用于日期的Haskell库?

时间:2010-01-10 01:40:35

标签: date haskell

haskell中是否有一个函数允许我输入日期的组成部分(如字符串表示或日月组件),我可以从中获取信息(如星期几,一个月中的日期等) ?

我看过网上看起来有很多自定义库,但是我希望ghci 10.6.4的标准前奏库中有一个没有很好的文档?

感谢您提供任何信息:)

3 个答案:

答案 0 :(得分:8)

Data.Time.Calendar中的Data.Time.Formattime library是否足够?

您可以使用gregorianMonthLength解析日期的字符串表示并获取一个月的长度。虽然您可以使用仅显示工作日的格式将日期格式化为字符串,但不确定星期几。

答案 1 :(得分:2)

快速Google搜索会出现this,这可能就是您想要的。它允许您解析表示日期的字符串并从中提取信息。

答案 2 :(得分:1)

您可以找到mondayStartWeeksundayStartWeek的星期几,具体取决于您是认为一周是星期一还是星期日。这两个函数都在Data.Time.Calendar.OrdinalDate

λ> snd $ mondayStartWeek $ fromGregorian 2017 10 3
2

在上面的示例中,返回值为2,表示一周的第二天。由于该函数被称为mondayStartWeek,因此星期一是第一天,因此2对应于星期二。 2017年10月3日确实如此。

关于周数的警告

两个函数都返回一个元组,其中第二个元素是工作日。据我所知,这应该是值得信赖的。

然而,第一个元素是一年中的周数。要小心,因为周编号的规则是政治性的。如果我没记错的话,在美国,第1周是包含1月1日的那一周。在我住的丹麦,情况并非如此。在这里,第1周是新的一年周四下降的第一周。这可能意味着12月31日可能会在明年的第1周落下。 IIRC,这是许多其他欧洲国家的规则。有些年头,美国和欧洲的一周数字一致,但有些年份,它们并没有。

相关问题