在 groovy 中创建日期数组

Create dates array in groovy

我正在尝试在 groovy 中创建可以存储多个日期的数组。 例如:我正在检查不同日期的可用性,如果发现可用,我想将它添加到我的数组中。 所以基本上我有一个带有变量的 while 循环,它决定了循环迭代的次数。数组长度应该等于时间循环迭代的次数。

预期结果应如下所示:

"2019/12/02","2019/12/03","2019/12/04"

我的代码 :

def SeriesDaysNumber = context.expand('${#Project#SeriesDaysNumber}')
def dates = new String[SeriesDaysNumber]

while(isAvailable == false) 
{   
    log.info "Inside While loop"
    for (i = 0; i < SeriesDaysNumber.toInteger(); i++)      
    { 
     // some DB query to check availability 

    if(res[0].toString() == '0')        
    {
            isAvailable = true
            seriesEndDate2 = "${SeriesEndDate1.format(outputDateFormatSeries)}"
            context.testCase.testSuite.project.setPropertyValue('SeriesEndDate', seriesEndDate2)
            // this date is available so add it to array, here i use zero index but i want it dynamically.
            dates[i] = seriesEndDate2.toString()
            log.info "dates : " + dates
    use(TimeCategory)
    {
    // here i am incrementing the date 
    }
    }
    }
}

实际结果

Mon Dec 02 15:24:56 IST 2019:INFO:dates : [2019/12/02, 2019/12/05, 2019/12/08, 2019/12/11, 2019/12/14, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]

我需要做 4 件事才能达到预期的结果:

  1. dates[i] 而不是 dates[0] 将所有日期存储在数组中。

  2. def dates = new String[SeriesDaysNumber.toInteger()] 解决 null 问题。

  3. dates[i] = "\""+seriesEndDate2.toString()+"\"" 将日期放在双引号中。

  4. log.info "dates : " + dates.join(", ") 从数组中删除方括号。