|
|
#1 |
|
Решили жить вечно?
|
Пишу
display TransDate DelayDate() { date date1; date date2; ; date1 = VendTrans.DueDate; date2 = VendTrans.TransDate; date1 -= date2; return (date1); } Возвращает всегда ноль, даже когда даты разные. Что не так? Мне нужно получить количество дней между этими датами |
|
|
|
|
#2 |
|
Модератор
|
Попробуйте:
PHP код:
|
|
|
|
|
#3 |
|
NavAx
|
Цитата:
Изначально опубликовано George Nordic
Попробуйте: PHP код:
__________________
Isn't it nice when things just work? |
|
|
|
|
#4 |
|
----------------
|
Хилари,
надо возвращать int (кол-во дней) PHP код:
|
|
|
|
| За это сообщение автора поблагодарили: jeky (1). | |
|
|
#5 |
|
Решили жить вечно?
|
Спасибо
|
|
|
|
|
#6 |
|
Участник
|
А вот аналогичный вопрос по теме!
Есть ли в Аксапте готовый класс, который выдает разницу дат в годах, месяцах и днях!? Например: Дата1-Дата2 = 5 лет 2 месяца 10 дней. |
|
|
|
|
#7 |
|
Участник
|
Нету,я тут тоже недавно озадачился функцией разницы в месяцах, пришлось самому ваять
|
|
|
|
|
#8 |
|
Участник
|
Цитата:
Сообщение от 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;
} |
|
|
|
|
#9 |
|
Участник
|
Цитата:
Сообщение от Владимир Максимов
Основная проблема в том, как именно определять эту разницу...
...Ну, а чтобы определить разные интервалы посмотри функцию IntvNo() Но с этой функцией тоже не все так уж очевидно! Последний раз редактировалось Bug; 27.10.2005 в 15:14. |
|
|
|
|
#10 |
|
Участник
|
Не надо глумится количеством дней в месяце, оперируйте функциями MthOfYr, EndMth и т.д.. допустим вот так:
возвращает количество полных месяцев в интервале дат static int mthNum(date _fomDate, date _toDate) { return (Year(_toDate) * 12 + MthOfYr(_toDate) - 1) - (Year(_fomDate) * 12 + MthOfYr(_fomDate) - 1); } |
|
|
|
|
#11 |
|
Участник
|
можно посмотреть в
\Classes\RAssetTableInterval_Month\monthDifference |
|
|