Groovy时间持续时间返回天数而不是月份

时间:2016-04-08 01:46:12

标签: groovy

尝试在两个日期之间获得持续时间,但duration.months返回0.只有duration.days有效。我做错了什么?

import groovy.time.TimeCategory

def startDate = new Date()

def endDate
def duration

use(TimeCategory) {
    endDate = startDate + 50.days
    duration = endDate - startDate
}

println "$duration.days days but $duration.months months"

输出: 50天但0个月

1 个答案:

答案 0 :(得分:0)

您希望它返回多少个月? 50/30 = 1.66,但这是30天的月份。

来自文档:http://docs.groovy-lang.org/latest/html/api/groovy/time/Duration.html

  

持续时间表示具有独立于的值的时间段   上下文。所以,虽然我们不能说一个月不知道多久   这一年和当月的名字,我们知道一天有多长   独立于日期。

本质上,Duration对象(在TimeCategory中返回的是日期减法)不知道它们是什么时候,它们是多长时间。