【问题标题】:math.ceil groovy script return valuemath.ceil groovy 脚本返回值
【发布时间】:2021-08-29 07:04:43
【问题描述】:

我正在尝试在两个日期之间生成一个随机日期,你能检查下面的代码吗?

我注意到输出为:02.0/01.0/1918.0

如何将其保存为 02/02/1918 而不是 02.0/01.0/1918.0

var dob;

//set a range of years
var min = 1900;
var max = 2004;

// Math.ceil prevents the value from being 0;
var month = Math.ceil(Math.random() * 12);
var day = Math.ceil(Math.random() * 28);
var year = Math.floor(Math.random() * (max - min) + min);

//this ensures that the format will stay mm/dd/yyyy;
if(month < 10) {
    month = "0" + month;
}
if(day < 10) {
    day = "0" + day;
}

//concatenates random dob in mm/dd/yyyy format;
dob = month + "/" + day + "/" + year;

return dob;

【问题讨论】:

  • 小心随机数,它们是从零开始的。您必须将 1 添加到 random() * 12,否则您会得到不正确的值。例如,如果随机数为 0,乘​​以 12 也得到 0,但要得到第一个月,则需要加 1。同样的逻辑适用于天和年。

标签: groovy jenkins-groovy groovyshell groovy-console


【解决方案1】:

Math.floor 返回双精度值。您必须将其转换为 int。

var year = Math.floor(...) as int

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-28
    • 2018-04-20
    • 2014-04-27
    • 2013-07-16
    • 2016-03-14
    相关资源
    最近更新 更多