Schedule of forward and backward method seeking to expand on GlideSchedule.add the date -----

Official scheduleAPI ServiceNow provided a method add.
Scoped GlideSchedule - add (GlideDateTime startDate, GlideDuration offSet)

*parameter1:
Name:startDate
Type:GlideDateTime
Description:The starting date of the new schedule segment.

parameter2:
Name:offSet
Type:GlideDuration
Description:The time offset of the new schedule segment.*

example:

var startDate = new GlideDateTime('2014-01-02');
var days = 2;
var dur = new GlideDuration(60 * 60 * 24 * 1000 * days);
var schedule = new GlideSchedule();
var end = schedule.add(startDate, dur);
gs.info(end);
//Output: 2014-01-04 00:00:00

However, this method can not be less than zero parameter2 duration. So we can only use this method in seeking schedule a future date, the date can not be projected forward.

name problem came when we want to schedule in three days (schedule in three days rather than three calendar days) before a specific date date should be how to do it?

On dry ok below.

Ideas :

1 GlideDateTime.addDaysLocalTime () parameter can be negative;
2 simply using a for loop;

/**
endTime is string
workDay type is int
**/
this._schedule = ‘*******************’;
getWorkDateInSchedule: function(endTime,workDay){   
var inter = 1;
if(workDay<0){
//workDay <0 特定日期往前推
    inter = -1;
    var workDayABS = Math.abs(workDay);
    var gt_end = new GlideDateTime(endTime);
    var sched = new GlideSchedule(this._schedule);
    var startWorkDate;
    var inte = 0;
    for(var i = 0; ; i++){
        //GlideDateTime.addDaysLocalTime() 参数可以为负数;
        gt_end.addDaysLocalTime(inter);
            if(sched.isInSchedule(gt_end)){
            inte = inte + 1;
        }
        if(inte == workDayABS){
            break;
        }
    }
    startWorkDate = gt_end;
    return startWorkDate.getDate().toString();
}
else{
// workDay > 0 特定日期往后推时就调用官方api
    var schedule = new GlideSchedule(this._schedule);
    var end = schedule.add(endTime, dur);
    return = end.getDate().toString();
}
},

Guess you like

Origin blog.51cto.com/13716461/2485506