The CreatorCon Call for Content is officially open! Get started here.

Calculate Number of Days using Script Include

nehapateria
Kilo Expert

Hello Members,

I am using Demo link (demo016.service-now.com/ ) to create a custom application. It has two Date/Time fields, Start Date and End Date, and one Integer field, Total Number of Days. On the basis of Start Date and End Date I have to calculate the difference between these two dates in No. of Days and have to set the value in the Total Number of Days field.

The issue is :- Total Number of Days field is not showing any value, it is blank, after entering Start Date and End Date

For this I am using Script Include.

Client Script:-

function onChange(control, oldValue, newValue, isLoading) {

  var strt = g_form.getValue('start');

  var ajax = new GlideAjax('AjaxDurCalc');

  ajax.addParam('sysparm_name','durCalc');

  ajax.addParam('sysparm_strt',strt);

  ajax.addParam('sysparm_end',newValue);

  ajax.getXML(HelloWorldParse);

function HelloWorldParse(response) {

    var val = response.responseXML.documentElement.getAttribute("answer");

    g_form.setValue('total_number_of_days', val);

}

}

Script Include:-

var AjaxDurCalc = Class.create();

AjaxDurCalc.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {

durCalc: function() {

  var sd = new GlideDateTime(this.getParameter('sysparm_strt'));

  var ed = new GlideDateTime(this.getParameter('sysparm_end'));

  var diffSeconds = gs.dateDiff(sd.getDisplayValue(),ed.getDisplayValue(), true);

  var converttodays = diffSeconds/(60*60*24);

  return converttodays;

}

});

Please suggest if there is any correction to be made in the script.

Thanks,

Neha Pateria

5 REPLIES 5

Hi Neha Paterla,



Use



parseInt()



(or)



Math.round()



for remove the decimals.