AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.06.2004, 13:48   #1  
Хилари is offline
Хилари
Решили жить вечно?
Аватар для Хилари
 
33 / 10 (1) +
Регистрация: 15.04.2004
? Как вычесть из одной даты другую?
Пишу

display TransDate DelayDate()
{
date date1;
date date2;
;

date1 = VendTrans.DueDate;
date2 = VendTrans.TransDate;
date1 -= date2;

return (date1);
}

Возвращает всегда ноль, даже когда даты разные. Что не так?
Мне нужно получить количество дней между этими датами
Старый 27.10.2005, 14:14   #2  
Bug is offline
Bug
Участник
 
28 / 10 (1) +
Регистрация: 11.08.2005
А вот аналогичный вопрос по теме!
Есть ли в Аксапте готовый класс, который выдает разницу дат в годах, месяцах и днях!?

Например: Дата1-Дата2 = 5 лет 2 месяца 10 дней.
Старый 27.10.2005, 14:34   #3  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 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;
}
Старый 27.10.2005, 14:49   #4  
Bug is offline
Bug
Участник
 
28 / 10 (1) +
Регистрация: 11.08.2005
Цитата:
Сообщение от Владимир Максимов
Основная проблема в том, как именно определять эту разницу...

...Ну, а чтобы определить разные интервалы посмотри функцию IntvNo()
Большое спасибо!
Но с этой функцией тоже не все так уж очевидно!

Последний раз редактировалось Bug; 27.10.2005 в 15:14.
Старый 27.10.2005, 14:18   #5  
MironovI is offline
MironovI
Участник
 
724 / 77 (4) ++++
Регистрация: 30.05.2005
Нету,я тут тоже недавно озадачился функцией разницы в месяцах, пришлось самому ваять
Старый 27.10.2005, 15:17   #6  
MironovI is offline
MironovI
Участник
 
724 / 77 (4) ++++
Регистрация: 30.05.2005
Не надо глумится количеством дней в месяце, оперируйте функциями MthOfYr, EndMth и т.д.. допустим вот так:

возвращает количество полных месяцев в интервале дат
static int mthNum(date _fomDate, date _toDate)
{
return (Year(_toDate) * 12 + MthOfYr(_toDate) - 1) - (Year(_fomDate) * 12 + MthOfYr(_fomDate) - 1);
}
Старый 27.10.2005, 16:05   #7  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
можно посмотреть в
\Classes\RAssetTableInterval_Month\monthDifference
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
kak на WEB-е передовать пареметры с одной формы на другую braathe DAX: Программирование 4 07.05.2010 12:54
выбор из одной таблице и вставка в другую bannov DAX: Программирование 3 26.06.2008 09:20
Drag and Drop grids из одной формы в другую Sveta1978 DAX: Программирование 2 11.12.2007 18:46
Как передать параметры из одной web форма в другую dtsymbal DAX: Программирование 9 28.02.2006 10:31
Проблема импорт Usr слоя из одной компании в другую Pavel Pustovalov DAX: Администрирование 6 12.08.2004 23:24

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 09:02.