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);
}

Возвращает всегда ноль, даже когда даты разные. Что не так?
Мне нужно получить количество дней между этими датами
Старый 07.06.2004, 13:59   #2  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Попробуйте:
PHP код:
date1 date1date2
Старый 07.06.2004, 14:21   #3  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,232 / 974 (37) +++++++
Регистрация: 03.04.2002
Цитата:
Изначально опубликовано George Nordic
Попробуйте:
PHP код:
date1 date1date2
Смешно. Какую дату ты расчитываешь получить в итоге?
__________________
Isn't it nice when things just work?
Старый 07.06.2004, 14:27   #4  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Хилари,
надо возвращать int (кол-во дней)
PHP код:
static void Job_(Args _args)
{;
    
info(int2str(EndMth(systemDateGet()) - systemDateGet()));

За это сообщение автора поблагодарили: jeky (1).
Старый 07.06.2004, 14:33   #5  
Хилари is offline
Хилари
Решили жить вечно?
Аватар для Хилари
 
33 / 10 (1) +
Регистрация: 15.04.2004
Спасибо
Старый 27.10.2005, 14:14   #6  
Bug is offline
Bug
Участник
 
28 / 10 (1) +
Регистрация: 11.08.2005
А вот аналогичный вопрос по теме!
Есть ли в Аксапте готовый класс, который выдает разницу дат в годах, месяцах и днях!?

Например: Дата1-Дата2 = 5 лет 2 месяца 10 дней.
Старый 27.10.2005, 14:18   #7  
MironovI is offline
MironovI
Участник
 
724 / 77 (4) ++++
Регистрация: 30.05.2005
Нету,я тут тоже недавно озадачился функцией разницы в месяцах, пришлось самому ваять
Старый 27.10.2005, 14:34   #8  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,691 / 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   #9  
Bug is offline
Bug
Участник
 
28 / 10 (1) +
Регистрация: 11.08.2005
Цитата:
Сообщение от Владимир Максимов
Основная проблема в том, как именно определять эту разницу...

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

Последний раз редактировалось Bug; 27.10.2005 в 15:14.
Старый 27.10.2005, 15:17   #10  
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   #11  
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, время: 23:45.