Subtract two durations fields

folu
Kilo Contributor

Hi, could anyone kindly assist on how to subtract two duration fields? Below is my code.

var tw = new GlideAggregate("metric_instance");

var metricSysID = 'ebff7bda0f920300ea7087ece1050efc';

tw.addQuery('id', '3149a00c0f560300ea7087ece1050eb0');

//tw.addQuery('id', current.sys_id);

tw.addQuery('value', 'Work in Progress');

    tw.addAggregate("SUM", "duration");

    tw.groupBy("id");

    tw.query();

    if (tw.next()) {

var timeworked = tw.getAggregate("SUM", "duration");

var dur = gs.dateDiff(tw.opened_at, gs.nowDateTime());

//var diff = (parseInt(timeworked) - parseInt(dur));

var diff = gs.dateDiff(timeworked, dur);

gs.print(" Duration1: " + dur);

gs.print(" Duration2: " + timeworked);

gs.print("Difference: " + diff);

}

*** Script:   Duration1: 23:59:59

*** Script:   Duration2: 00:08:13

*** Script: Difference: 00:00:00

8 REPLIES 8

sachin_namjoshi
Kilo Patron
Kilo Patron

Please see below post which has solution for duration calculation



Addition & subtraction of two duration field



Regares,


Sachin


Hi Sachin,



Thanks. I had gone to that post but they weren't able to subtract the durations also. see a portion of the code here, It's printing NaN.




{


var grd_duration= grd.getAggregate('SUM', 'duration');


  gs.log('Value of Duration:' + grd_duration);                     // This one is printing correct duration


  duration = duration - grd_duration;


  gs.log('Total Value :'   + duration);   // This one is printing as NaN.


  }


please try like,



duration = parseInt(duration) - parseInt(grd_duration);


Hi Shishir,



This is   what I am getting:



*** Script:   Duration1: 00:06:33


*** Script:   Duration2: 23:59:59


*** Script: Difference: 23