mikej
08/25/2021, 3:45 PMvar dateStr, futureDate, currentDayOfWeek, numberOfWeekends, tString, nString;
var time, timeStr, localFDate;
try{
log.debug(func, "Starting: " + JSON.stringify({
originalDate: originalDate,
numberOfWeekdays: numberOfWeekdays
}));
futureDate = moment(originalDate);
currentDayOfWeek = futureDate.day(); // 0 = Sunday, 1 = Monday, ..., 6 = Saturday
log.debug(func, "first calc: " + JSON.stringify({ futureDate: futureDate, currentDayOfWeek: currentDayOfWeek }));
numberOfWeekends = Math.floor((currentDayOfWeek + numberOfWeekdays - 1) / 5); // calculate the number of weekends to skip over
futureDate.add(numberOfWeekdays + numberOfWeekends * 2, 'days'); // account for the 2 days per weekend
log.debug(func, "second calc: " + JSON.stringify({ numberOfWeekends: numberOfWeekends, futureDate: futureDate }));
// attempting to set the time to 12:00 pm
timeStr = '12:00';
time = moment(timeStr, 'HH:mm');
futureDate.set({
hour: time.get('hour'),
minute: time.get('minute'),
second: time.get('second')
});
localFDate = moment.utc(futureDate).local().format();
log.debug(func, "third calc: " + JSON.stringify({ futureDate: futureDate, localFDate: localFDate }));
dateStr = format.format({value: localFDate, type: format.Type.DATETIME});
log.debug(func, "Returning dateStr: " + dateStr);
return dateStr;
Sandii
08/25/2021, 3:57 PMmoment.format()
in combination with field.setText()
should be pretty straight forward.Sandii
08/25/2021, 3:58 PMSandii
08/25/2021, 4:02 PMlet twoDaysLaterAt12 = moment().startOf('day').add(2, 'days').add(12, 'hours').format('L HH:mm');
should be pretty close to a format setText on a date time would takescottvonduhn
08/25/2021, 4:05 PMstartOf('day')
will always be midnight with respect to the current timezone, which by default will be the NetSuite server's (probably Pacific time).Sandii
08/25/2021, 4:08 PM.UtcOffset()
, if you care about thatbattk
08/25/2021, 5:07 PM