Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Total duration of all records

Charan123
Tera Expert

Need total duration of below records

bhavi_0-1698331183812.png


script:

var val = 0;
var count=new GlideRecord('metric_instance');
count.addEncodedQuery('id=1db320a2970a31108fc572571153af98^value=In Progress');
count.query();
while(count.next()){

val += count.duration.dateNumericValue();

}
gs.print( val); 

Results: 

*** Script: 48661000

 Here, i need in the format of days hours minutes 

Can anyone suggest here...

2 REPLIES 2

Danish Bhairag2
Tera Sage

Hi @Charan123 ,

 

Can u try the below code.

 

var val = 0;

var count = new GlideRecord('metric_instance');

count.addEncodedQuery('id=1db320a2970a31108fc572571153af98^value=In Progress');

count.query();

 

while (count.next()) {

    val += count.duration.dateNumericValue();

}

 

// Calculate days, hours, and minutes

var days = Math.floor(val / (24 * 60 * 60 * 1000));

val %= (24 * 60 * 60 * 1000);

var hours = Math.floor(val / (60 * 60 * 1000));

val %= (60 * 60 * 1000);

var minutes = Math.floor(val / (60 * 1000));

 

gs.print(days + ' days ' + hours + ' hours ' + minute

s + ' minutes');

 

Thanks,

Danish

 

Peter Bodelier
Giga Sage

Hi @Charan123 


You could try it like this:

var val = 0;
var count=new GlideRecord('metric_instance');
count.addEncodedQuery('id=1db320a2970a31108fc572571153af98^value=In Progress');
count.query();
while(count.next()){

val += count.duration.dateNumericValue();

}
gs.print(val);
var jsonDate = convertMillisecondsToDaysHoursMinutesSeconds(val);
gs.print(jsonDate.days + ' days ' + jsonDate.hours + ' hours ' + jsonDate.minutes + ' minutes ' + jsonDate.seconds + ' seconds'); 

function convertMillisecondsToDaysHoursMinutesSeconds(milliseconds) {
  var seconds = milliseconds / 1000;
  var minutes = seconds / 60;
  var hours = minutes / 60;
  var days = hours / 24;

  return {
    days: Math.floor(days),
    hours: Math.floor(hours % 24),
    minutes: Math.floor(minutes % 60),
    seconds: Math.floor(seconds % 60),
  };
}

PeterBodelier_0-1698339367056.png

 


Help others to find a correct solution by marking the appropriate response as accepted solution and helpful.