Формат, который вы использовали здесь:
licenseDate.format('mm/dd/yyyy')
означает (minute in hour)/(day of month)/(year)
.Вместо него должно быть
licenseDate.format('MM/dd/yyyy')
, потому что MM
означает месяц в году.Ваш код, отвечающий за добавление года и месяца, правильный, вы пропустили только форматирование и отображение даты в правильном формате.
Посмотрите на приведенный ниже пример:
import groovy.time.TimeCategory
def calculateLicense(Date bd, int yr, int mon = 0) {
use(TimeCategory) {
Date licenseDate = bd + yr.years + mon.months
println "License date:" + licenseDate.format('MM/dd/yyyy')
}
}
calculateLicense(Date.parse("yyyy-MM-dd", "2018-06-06"), 2, 3)
calculateLicense(Date.parse("yyyy-MM-dd", "2018-06-06"), 2)
Вывод:
License date:09/06/2020
License date:06/06/2020