Цитата:
Сообщение от
Bug
А вот аналогичный вопрос по теме!
Есть ли в Аксапте готовый класс, который выдает разницу дат в годах, месяцах и днях!?
Например: Дата1-Дата2 = 5 лет 2 месяца 10 дней.
Основная проблема в том, как именно определять эту разницу.
Сколько будет составлять разница между 28 января и 1 марта?
1 месяц и 1 день или 1 месяц и 3 дня?
Т.е. ты сначала прибавишь к 28 января 1 месяц, а потом определишь разницу между 28 февраля и 1 марта. В этом случае имеем 1 месяц и 1 день
Или же определишь количество дней между 28 январа и 1 февраля (это 3 дня), а потом прибавишь 1 месяц. В этом случае получим 1 месяц и 3 дня.
Оба варианта правильные. Весь вопрос в том, что именно считать "правильным".
Ну, а чтобы определить разные интервалы посмотри функцию IntvNo()
Код:
static void Job1(Args _args)
{
FromDate fromDate = 28\01\2005;
ToDate toDate = 17\03\2005;
;
info(strFmt("from %1 to %2",fromDate,toDate));
info(strfmt('Лет IntvNo() %1',IntvNo(toDate,fromDate,IntvScale::Year)));
info(strfmt('Месяцев IntvNo() %1',IntvNo(toDate,fromDate,IntvScale::Month)));
info(strfmt('Дней IntvNo() %1',IntvNo(toDate,fromDate,IntvScale::Day)));
return;
}