добавление месяцев к дате в Groovy не работает - PullRequest
0 голосов
/ 06 июня 2018

В приведенном ниже коде только год добавляется к моей дате.месяцы не добавляются.

def calculateLicense(Date bd, int yr, int mon=0){
    use (groovy.time.TimeCategory) {
        Date licenseDate = bd + yr.years + mon.months
        println "License date:" + licenseDate.format('mm/dd/yyyy')
    }

1 Ответ

0 голосов
/ 06 июня 2018

Формат, который вы использовали здесь:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...