我有一个格式为{Y,M,D}
的日期。有没有好的支持库或技巧,我可以简单地使用,比如从这个日期减去三个月,而不会遇到无效日期、闰年等问题?
我最近的类似用法是在MySql中,你可以输入:
Select '2011-05-31' - Interval 3 Month;
生成'2011-02-28'
。我对如何自己编写这个库不感兴趣,这是我想避免的。
1> calendar:gregorian_days_to_date(calendar:date_to_gregorian_days({2011, 7, 14}) - 90).
{2011,4,15}
http://www.erlang.org/doc/man/calendar.html 使用edate -特别是shift函数
> edate:shift({2011,5,31}, -3, months).
{2011,2,28}
在底层它使用日历模块,所以它正确地处理所有的极端情况。
我创建了一个GitHub gist,其中包含一些有用的实用工具。你想偷就偷吧。
https://gist.github.com/104903