| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > TDateTime |
| Автор: Inga 19.5.2006, 12:47 |
| Мне надо получить три даты: 1. Текущая дата 2. Первое число месяца 3. Первое число прошлого месяца TDateTime tpar = Date(); TDateTime tpar2; WORD Day, Month, Year; DecodeDate(tpar,Year, Month,Day); //текущая дата tpar2 = EncodeDate(Year, Month, 1); WORD Day1, Month1, Year1; DecodeDate(tpar2,Year1, Month1,Day1);//первый день текущего месяца Подскажите, пожалуйста, как теперь правильно получить дату указывающую на первое число прошлого месяца (пункт 3)? |
| Автор: Fazil6 19.5.2006, 12:59 | ||
ну если продолжить ваш алгоритм
|
| Автор: Inga 19.5.2006, 13:18 |
| Спасибо! Обязательно делать проверку? Если я просто добавлю код, то будет работать? TDateTime tpar3; tpar3 = EncodeDate(Year, Month-1, 1); WORD Day2, Month2, Year2; DecodeDate(tpar3,Year2, Month2,Day2);//начало прошлого меяца |
| Автор: Fazil6 19.5.2006, 13:28 |
| может оказаться Январь и Month-1 даст 0, поэтому и проверка |
| Автор: Inga 19.5.2006, 13:35 |
| Значит тип TDateTime самостоятельно не может осуществлять проверки? |
| Автор: Fazil6 19.5.2006, 14:21 | ||
может но не в этом случае. Moжно ведь и не прибегая к DecodeDate
|
| Автор: Inga 19.5.2006, 14:29 |
| Cпасибо, мне подходит первый вариант. Дело в том, что я использую специализированный усеченный С++ скрипт, там нет методов типа StartOfTheMonth. >может но не в этом случае. Мне хочется разобраться в типе TDateTime. Жаль, что сейчас не январь месяц, чтобы проверить работу без условия проверки. |
| Автор: Fazil6 19.5.2006, 14:36 | ||
ну посмотри в документацию
обрати внимание на последнюю строку |