Help to calculate the difference between two fields in minutes

Thrupthi
Tera Expert

I have a two fields on my table which are of date/time type; I have start date and end date, inorder to calculate the difference i have created a new field of type duration

Business rule is been for this it returns a value in "days:hours:minutes"seconds"

Instead i just want the field to calculate the value in minutes; can someone please help me with this

Business rule:

(function executeRule(current, previous /*null when async*/) {

if (current.u_incident_start_date.nil() || current.u_incident_end.nil()) {
current.setValue('u_incident_duration_calculation', '');
return;
}

var st = new GlideDateTime();


st.setValue(current.getValue("u_incident_start_date"));

var ed = new GlideDateTime();
ed.setValue(current.getValue("u_incident_end"));

var dur = GlideDateTime.subtract(st, ed);
current.setValue("u_incident_duration_calculation", dur.getValue());

})(current, previous);




1 ACCEPTED SOLUTION

That could be the issue. If you donot want decimals , try the updated code

(function executeRule(current, previous /*null when async*/) {
	
	if (current.u_incident_start_date.nil() || current.u_incident_end.nil()) {
		current.setValue('u_incident_duration_calculation', '');
		return;
	}
	
	var st = new GlideDateTime(current.u_incident_start_date);
	var ed = new GlideDateTime(current.u_incident_end);
	
	var sec = gs.dateDiff(st, ed, true);
	
	var minutes = sec/60;
	
	current.u_incident_duration_calculation = parseInt(minutes,10); // Remove decimals 

	
})(current, previous);

View solution in original post

15 REPLIES 15

I tried that already, it dint work with client and server script

dvp
Mega Sage
Mega Sage

Try this

(function executeRule(current, previous /*null when async*/) {
	
	if (current.u_incident_start_date.nil() || current.u_incident_end.nil()) {
		current.setValue('u_incident_duration_calculation', '');
		return;
	}
	
	var st = new GlideDateTime(current.u_incident_start_date);
	var ed = new GlideDateTime(current.u_incident_end);
	
	var sec = gs.dateDiff(st, ed, true);
	
	var minutes = sec/60;
	
})(current, previous);

Hi Dvp

 

i tried this script but it dint work, is it because the field "u_incident_duration_calculation" is of integer type? 

upon selection of dates it just displays blank nothing worked