2016-04-08 2 views
1

2つの日付の期間を月単位で取得しようとしますが、duration.monthsは0を返します。私は間違って何をしていますか?Groovy時間の期間は月を返しますが、月は返されます

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ヶ月

答えて

0

あなたはそれを返すようにしたいでしょうどのように何ヶ月? 50/30 = 1.66ですが、それは30日間です。ドキュメントから

http://docs.groovy-lang.org/latest/html/api/groovy/time/Duration.html

時間は コンテキストの独立した値を有する期間を表します。だから、 年と月の名前を知らずにどれくらいの月がどれくらいあるかはわかりませんが、私たちは日付とは無関係にどれくらいの日が であるかを知っています。

Durationオブジェクト(これは、TimeCategoryで減算される日付です)は、実際にはどれくらいの長さであるか分かりません。

+0

Ah!私はドキュメントの "文脈に依存しない"部分を見逃しました。今や意味をなさないありがとう – Micor

関連する問題