• London
• Kingston
• Jakarta
• Istanbul
• Helsinki
• Geneva
• Store
Close

# Using DurationCalculator to compute a simple duration

A simple duration is the number of seconds between two date times.

If no schedule is used then this is a simple time date subtraction. If a schedule is used, then the schedule is consulted to remove non-work hours from the computation. Suppose schedule "8-5 weekdays excluding holidays" is used. In this case, the number of work hours from noon Monday to noon Tuesday is nine hours. To compute a simple duration, initialize DurationCalculator and call the calcScheduleDuration() method.

This script demonstrates how to use DurationCalculator to compute a simple duration.
```/**
* Sample script demonstrating use of DurationCalculator to compute simple durations
*
*/

gs.include('DurationCalculator');
executeSample();

/**
* Function to house the sample script.
*/
function executeSample(){

// First we need a DurationCalculator object.
var dc = new DurationCalculator();

// Compute a simple duration without any schedule. The arguments
// can also be of type GlideDateTime, such as fields from a GlideRecord.
var dur = dc.calcScheduleDuration("2012-05-01", "2012-05-02");
gs.log("calcScheduleDuration no schedule: " + dur); // 86400 seconds (24 hours)

// The above sample is useful in limited cases. We almost always want to
// use some schedule in a duration computation, let's load a schedule.

// Compute a duration using the schedule. The schedule
// specifies a nine hour work day. The output of this is 32400 seconds, or
// a nine hour span.
dur = dc.calcScheduleDuration("2012-05-23 12:00:00","2012-05-24 12:00:00");
gs.log("calcScheduleDuration with schedule: " + dur); // 32400 seconds (9 hours)

// Compute a duration that spans a weekend and holiday. Even though this
// spans three days, it only spans 9 work hours based on the schedule.
dur = dc.calcScheduleDuration("2012-05-25 12:00:00", "2012-05-29 12:00:00");
gs.log("calcScheduleDuration with schedule spaning holiday: " + dur); // 32400 seconds (9 hours)

// Use the current date time in a calculation. The output of this is
// dependent on when you run it.
var now = new Date();
dur = dc.calcScheduleDuration("2012-05-15", new GlideDateTime());
gs.log("calcScheduleDuration with schedule to now: " + dur); // Different on every run.
}

/**
* Add a specific schedule to the DurationCalculator object.
*
* @param durationCalculator An instance of DurationCalculator
*/