Для вычисления продолжительности периода между двумя датами необходимо преобразовать их в тип Datetime, далее воспользоваться методом sub(date: TDatetime): TDuration, и применить необходимые свойства типа данных TDuration.
Код:
const duration = Context.data.start_Datetime!.sub(Context.data.end_Datetime!);
// в секундах
const durationInSeconds = duration.seconds;
// в часах
const durationInHours = duration.hours;
// в днях
const durationInDays = Math.floor(duration.hours / 24);
Пример расчета продолжительности командировки в днях:
Код:
/получим элемент приложения Командировка
const trip = await Context.data.business_trip!.fetch();
//преобразуем даты начала и конца к типу Datetime
conststart = trip.data.departureDate!.asDatetime(new TTime(0,0,0,0));
const end = trip.data.returnDate!.asDatetime(newTTime(23,59,0,0));
//расcчитаем длительность в днях
trip.data.durationTotal = Math.floor(end.sub(start).hours/24);
//сохраним изменения
await trip.save();
Также можно воспользоваться методом unix(): number типа данных TDatetime (Дата/время), т.к. метод возвращает количество секунд от 00:00:00 01.01.1970 по UTC до указанной даты/времени.
Пример вычисления количества часов между двумя временными точками:
Код:
const number_of_hours = (Context.data.end!.unix() - Context.data.start!.unix())/3600;