date - 使用 Groovy 计算两个日期之间的月差

标签 date time groovy datediff

我需要计算两个日期之间的月差。

start = new Date(112, 4, 30) // Wed May 30 00:00:00 CEST 2012
end = new Date(111, 9, 11)   // Tue Oct 11 00:00:00 CEST 2011

assert 8 == monthsBetween(start, end)

使用 Joda-Time用这样的东西很容易实现这一点:

months = Months.monthsBetween(start, end).getMonths()

如何在不使用其他库的情况下以 Groovy 方式实现这一点?

最佳答案

monthBetween = (start[Calendar.MONTH] - end[Calendar.MONTH]) + 1
yearsBetween = start[Calendar.YEAR] - end[Calendar.YEAR]
months = monthBetween + (yearsBetween * 12)

关于date - 使用 Groovy 计算两个日期之间的月差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10820022/

相关文章:

c# - 将 System.DateTime 转换为 Javascript DateString

java - 如何向日历对象添加一天并考虑夏令时?

mysql - 如何根据此数据找出 1 周间隔的顶级股票(失败者)

grails - 递归方法在grails/groovy单元测试用例中无法正常工作

gradle - 可以在Gradle中使用C++类,因为它支持groovy

java - Groovy + Java接口(interface)继承问题

mysql - Swift 3 解析日期字符串

javascript - Lerp 背景颜色基于一天中的时间

python - 从Django的数据库中添加一天的时间

time - 为什么 time.Parse 会错误地解析时间?