04.09.2008, 17:18 | #1 |
Злыдни
|
dateNull() и endMth()
Наступил на фичу и решил поделиться. Все мы знаем, что dateNull() = 01\01\1900. Но для меня было неочевидно, что с dateNull() великолепно работают функции endMth() и пр., возвращая 31\01\1900 и т.п. соответственно Долго же я ломал голову, когда в конструкции
X++: TransDate myDate = MyTable::getPeriod();
;
if (!mydate)
myDate = systemDateGet() |
|
04.09.2008, 19:36 | #2 |
Administrator
|
Хочется добавить, что ЛЮБЫЕ даты 1900-го года воспринимаются также как datenull().
Т.е. X++: date d = 31\12\1900; if (!d) { info("пусто!"); } Но 0 видимо для типа date не является ложью (false) в выражении if (!date), поэтому система спокойно идет себе дальше....
__________________
Возможно сделать все. Вопрос времени |
|
05.09.2008, 08:46 | #3 |
Злыдни
|
Цитата:
X++: TransDate testDate; ; testDate = 01\02\1900; info(date2strXpp(testDate)); // 01\01\1900 if (!testDate) info("Дата пустая"); //условие отрабатывает testDate = endMth(dateNull()) + 1; info(date2strXpp(testDate)); // 01\02\1900 if (!testDate) info("Дата пустая"); //условие не отрабатывает Последний раз редактировалось Yprit; 05.09.2008 в 08:47. Причина: добавил про отладчик |
|
|
За это сообщение автора поблагодарили: alex55 (1), Vlad_ (1). |