| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Проверка на "размер" дня |
| Автор: mr.Anderson 30.8.2005, 20:40 | ||
Юзверь вводит дату в три Эдита (в качестве календаря я использую DateTimePicker). В первом - день, во втором - месяц, в третьем - год. Надо проверить, что ввел юзер в качестве дня. Если день превышает 31, то надо исправить на 31 или 30, в зависимости от месяца. Я написал так:
Однако, при вводе неверного дня программа просто "вываливается" и говорит, что не существует даты с днем, большим 31. Что не так? Алгоритм вроде верный... |
| Автор: BreakPointMAN 30.8.2005, 21:17 | ||||
А зачем такие извращения, если DateTimePicker и так предназначен для корректного ввода даты?!
Как используется string_day? Ты уверен, что эта переменная вообще используется? Ты изменяешь Edit1->Text в соответствии с ее значением? Кстати, а високосный год кто учитывать будет? |
| Автор: codelord 31.8.2005, 07:39 | ||||
sim7 держи, поправил.
теперь будет:
|
| Автор: Vyacheslav 31.8.2005, 08:49 | ||
Я понимаю, что все хочется делать своими руками, но не проще ли
|
| Автор: mr.Anderson 31.8.2005, 16:00 |
| codelord, я тож пробовал ваш вариант. Ничего у меня не получалось. Vyacheslav, где вы такие функции берете? Мне бы их списочек найти... Всех... И еще вопрос. Почему вы изменяете ToInt() у Эдита, а не свойство Text? |
| Автор: _hunter 31.8.2005, 16:08 |
| список функций в хелпе по модулю DateUtils можеш пичать int year = StrToInt(Edit1->Text); |
| Автор: Vyacheslav 31.8.2005, 17:07 | ||||||
Я в принипе не могу изменить ToInt(). Просто меняю переменную day типа int, которая предварительно была заполнена спомощью ToInt() Если Вы хотите значение завести обратно в Edit, то нужно добавить еще строку
Если же стоит вопрос о заполнении TDataTimePicker, то лучше бы выглядело
|
| Автор: mr.Anderson 1.9.2005, 16:36 | ||
А вот мне и унтересно, почему же
Не срабатывает? |
| Автор: _hunter 1.9.2005, 16:45 |
| почему не срабатывает? срабатывает |
| Автор: mr.Anderson 2.9.2005, 19:01 |
| Да? А у меня в этой проверке почему-то не срабатывает. Просто не исправляет, и все тут. |
| Автор: _hunter 2.9.2005, 19:14 |
| в какой проверке? нет там никакой проверки... |
| Автор: codelord 2.9.2005, 19:45 |
| Если это проверка то вместо "=" будет "==" |
| Автор: mr.Anderson 3.9.2005, 18:32 | ||
Вы меня не поняли. Я имел в виду, что в коде
У меня просто не меняется значение Эдитов, а выкидывается ошибка о "Несуществующей дате". |
| Автор: codelord 3.9.2005, 21:49 |
| пожалуйста: |