Показать сообщение отдельно
Старый 27.10.2005, 14:34   #3  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,711 / 1201 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от 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;
}