Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Next challenges

Recent achievements

  • Global
  • Personal

Recognition

  • Give kudos
  • Received
  • Given

Leaderboard

  • Global

Trophy case

Kudos (beta program)

Kudos logo

You've been invited into the Kudos (beta program) private group. Chat with others in the program, or give feedback to Atlassian.

View group

It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

I am trying to calculate the difference, in days, between the create date and a date custom field.

I am trying to calculate the difference, in days, between the create date and a date custom field.  This usually works but sometimes when there is an update for ScriptRunner the calculation goes off....by very large numbers.  For one issue, I expect a value of 36 and I am getting 3,055,174,244.

Can anyone see anything wrong with my script?  Or what may cause the script to work for a while but then stop?

 

import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.issue.Issue;
import java.util.Date.*

def customFieldManager = ComponentAccessor.getCustomFieldManager();
def dateFieldObject = customFieldManager.getCustomFieldObject('customfield_10803');
def intTiming=0.0;

def dateFieldObject2 = issue.getCreated();

if(issue.getCustomFieldValue(dateFieldObject) && issue.getCreated()) {
def dateValue = issue.getCustomFieldValue(dateFieldObject) as Date
def dateValue2 = issue.getCreated() as Date
return dateValue - dateValue2

}

1 answer

1 accepted

0 votes
Answer accepted
Leonard Chew Community Leader Apr 13, 2020

This is a good question, and I don't know the answer, but my best guess would be that your environment is sometimes returning milliseconds instead of days.

Try an explicit cast to milliseconds and then recalculate the day value, e.g.

def dateValueInMs = dateValue.getTime()

def dateValue2InMs = dateValue2.getTime()

return (dateValueInMs-dateValue2InMs)/1000/60/60/24

Thank you!  I couldn't get the .getTime() to work for me, but I was able to adjust my calculation accounting for the milliseconds.  Just waiting for it to break again.

I appreciate your help!

Suggest an answer

Log in or Sign up to answer
TAGS
Community showcase
Published in Jira

Jira Cloud Performance Improvements

Hello everyone, I am a product manager in the Jira Cloud team focused on making sure our customers have a delightful experience using our products. Towards that goal, one of the areas which is extr...

170 views 2 9
Read article

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you