Hi All,
Im attempting to get 5 working days from issue.getCreated() but im having alot of issues, please see code below:
import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.CustomFieldManager import com.atlassian.jira.event.type.EventDispatchOption import com.atlassian.jira.issue.UpdateIssueRequest import com.atlassian.jira.issue.MutableIssue MutableIssue issue = ComponentAccessor.getIssueManager().getIssueObject('COM-2479') CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager() Date createdDate = issue.getCreated() Date date = new Date(); Calendar calendar = Calendar.getInstance(); date = calendar.getTime(); //SimpleDateFormat s; //s=new SimpleDateFormat("MM/dd/yy"); int days = 5; int i=0; for(date;date<createdDate;) { calendar.add(Calendar.DAY_OF_MONTH, 0); if(calendar.get(Calendar.DAY_OF_WEEK)<=5) { i++; } } //date=calendar.getTime(); //s=new SimpleDateFormat("MMM dd, yyyy"); return createdDate+i
Here is code:
import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.MutableIssue MutableIssue issue = ComponentAccessor.getIssueManager().getIssueObject('COM-2479') Calendar calendar = Calendar.getInstance(); calendar.setTime( new Date( issue.getCreated())) int days = 5; while (days > 0){ calendar.add(Calendar.DAY_OF_YEAR, 1); if(calendar.get(Calendar.DAY_OF_WEEK) <= 5) --days; } return calendar.toString();
Thank you so much Vasiliy, ive been tearing my hair out trying to get this to work, it should be so simple lol
i ran the script and threw me some errors:
image2017-3-10 16:40:6.png
Im using JIRA 6.3.3
Many thanks
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
This is the reason why I do not like groovy - it does not test on compile time. Here is updated code
import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.MutableIssue MutableIssue issue = ComponentAccessor.getIssueManager().getIssueObject('COM-2479') Calendar calendar = Calendar.getInstance(); calendar.setTime( new Date( issue.getCreated().getTime())) int days = 5; while (days > 0){ calendar.add(Calendar.DAY_OF_YEAR, 1); if(calendar.get(Calendar.DAY_OF_WEEK) <= 5) --days; } return calendar.toString();
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Ahhh, got it, thank you so much! all is working!!
thank you for all your help.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
It's nice solution. Just bear in mind that it's not working in every environment especially be careful with Locales.
My working sample:
def nextByzDay( Calendar calendar, int days ) {
while (days > 0) {
calendar.add(Calendar.DAY_OF_YEAR, 1);
if( calendar.get(Calendar.DAY_OF_WEEK) > 1 && calendar.get(Calendar.DAY_OF_WEEK) <= 6)
--days;
}
return calendar
}
You cannot rely on fact Calendar.Sunday is always 7 (Calendar.Sunday==7). For me Calendar.Sunday is 1 (Calendar.Sunday==1). Therefore I suggest to use the constants Calendar.Saturday and Calendar.Sunday.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.