简体   繁体   English

常规更改日历日期

[英]groovy change calendar date

I am trying to get an output from cal inside the switch statement but it is giving me the current date, what am I doing wrong? 我正在尝试从switch语句中的cal获取输出,但是它给了我当前日期,我在做什么错呢? An explanation would be much appreciated too. 一个解释也将不胜感激。 Thank you. 谢谢。

import static java.util.Calendar.*
import java.sql.Timestamp.*

every = 4 //testing
period = 'weeks(s)' //testing

if (every && period){

def cal = Calendar.instance
def addTime
addTime = cal.time
    switch (period) {
        case "day(s)":
        cal[DATE]  = cal[DATE] + every
        addTime = cal.time
        break
        case "weeks(s)":
        cal[DATE]  = cal[DATE] + every*7
        addTime = cal.time
        break
        case "month(s)":
        cal[DATE]  = cal[MONTH] + every
        addTime = cal.time
        break
        case "year(s)":
        cal[YEAR]  = cal[YEAR] + every
        addTime = cal.time
        break
        case "day of the month":
        cal[MONTH]  = cal[MONTH] + 1
        cal[DATE] = every
        addTime = cal.time
        break
    }

java.sql.Timestamp newTimestamp = new java.sql.Timestamp(addTime.getTime());
dueDate = newTimestamp
}
println dueDate

This script for instance does the job eg, my dueDate is updated correctly but it is hard coded in newTimestamp line, so how can I implement the above switch inside the code below? 例如,此脚本可以正确执行工作,例如我的dueDate ,但在newTimestamp行中进行了硬编码,因此如何在下面的代码中实现上述开关?

//import com.atlassian.jira.ComponentManager
//import com.atlassian.jira.issue.CustomFieldManager
//import com.atlassian.jira.issue.MutableIssue
//import com.atlassian.jira.issue.customfields.CustomFieldType
//import com.atlassian.jira.issue.fields.CustomField
import java.sql.Timestamp;

//MutableIssue myIssue = issue

Calendar cal = Calendar.getInstance();
// set due date to: current date + 30 days
Timestamp mydueDate = new Timestamp(cal.getTimeInMillis()+ 2592000000);
println mydueDate

//myIssue.setDueDate(mydueDate);

This was the actual way to go about it so JIRA would stop complaining. 这是解决问题的实际方法,因此JIRA不再抱怨。

import com.atlassian.jira.ComponentManager 
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.customfields.CustomFieldType
import com.atlassian.jira.issue.fields.CustomField
import java.sql.Timestamp;


def every, period
if (cfValues['Every']){
    every = cfValues['Every'] as int

}
if (cfValues["Period"]){
    period = cfValues["Period"]
}

Calendar cal = Calendar.getInstance();
if (every && period){
    switch (period) {
        case "day(s)":
        cal.add(Calendar.DAY_OF_MONTH, every)
        break
        case "week(s)":
        cal.add(Calendar.DAY_OF_MONTH, every*7)
        break
        case "month(s)":
        cal.add(Calendar.MONTH, every)
        break
        case "year(s)":
        cal.add(Calendar.YEAR, every)
        break
        case "day of the month":
        cal.add(Calendar.MONTH, 1)
        cal.set(Calendar.DAY_OF_MONTH, every)
        break
    }
}

MutableIssue myIssue = issue

Timestamp mydueDate = new Timestamp(cal.getTimeInMillis());

myIssue.setDueDate(mydueDate);

//copy the parent issue summary
issue.summary = sourceIssue.summary

//delete the links and attachements
checkLink = {link -> false};
checkAttachment = {attachment -> false}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM