Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как узнать - сколько дней в месяце?


Кирил ©   (2009-01-13 11:29:00) 

Как программно по месяцу и году - узнать сколько дней вмесяце?


Anatoly Podgoretsky   (2009-01-13 19:50:00) [1]


> Как узнать - сколько дней в месяце?

В этом месяце 31, насчет февраля - спрашивай в феврале.


MsGuns   (2009-01-13 16:38:00) [2]

В свое время я решил эту "проблему раз и навсегда, написав функцию, которой передается указатель на дескриптор (рекорд), где задан тип периода или две даты.
Функция создает модальное окно, в котором показывает способ выбора периода (тип):
Весь период
Последний год
Последний квартал
Последний месяц
Последняя декада
Произвольный период

и две кнопки "Выбрать" и "Отмена"

Если выбирается 1 вариант, то в рекорде обе даты в 0, тип 0
Если последний, то показываются два дататаймпикера, куда пользователь вводит дату начала и дату конца, которые и переносятся в рекорд (после проверки на пересечение ессно), тип (-1)
Иначе вычисляется дата начала и конца и вместе с типом передаются в рекорд

Приложение должно лишь создать рекорд, если надо, записать туда границы и тип периода, установленные в последний раз (и сохраненные, например, в ини-файле) и вызвать эту функцию, передав ей указатель на этот рекорд. Если функция вернула "ложь", то ничего, а если "истина", то даты принимаются к обработке.

Функцию положил в "свою" библиотеку Делфи


Ega23   (2009-01-13 15:53:00) [3]


> А что можно придумать?


Да полно вариантов. Например, 2 комбика, в одном - года, в другом - месяцы.
Всё от задачи и фантазии зависит.


Кирил   (2009-01-13 15:46:00) [4]

> MsGuns ©   (13.01.09 15:28) [7]
> Нет

А что можно придумать? ComboBox + SpinEdit?
Хотя, может и лучше! ))
function DaysInAMonth(const AYear, AMonth: Word): Word;
У ComboBox номер строки, SpinEdit.Value...!


MsGuns   (2009-01-13 15:28:00) [5]

Нет


Кирил   (2009-01-13 14:15:00) [6]

> function DaysInAMonth(const AYear, AMonth: Word): Word

Спасибо! Супер!
=================================================
А дополнительно хотел спросить - можно ли в TDateTimePiker показывать/выбирать только месяц и год? (дату скрывать)


Плохиш   (2009-01-13 12:17:00) [7]


> Как программно по месяцу и году - узнать сколько дней вмесяце?
>
>

Вот они современные недоучки, даже количество дней в месяцах не знают.


Ega23   (2009-01-13 11:36:00) [8]

DateUtils.DaysInAMonth + F1


{RASkov}   (2009-01-13 11:36:00) [9]

function DaysInAMonth(const AYear, AMonth: Word): Word;


clickmaker   (2009-01-13 11:33:00) [10]

хм... вроде бы это фиксированное число всегда. За исключением февраля, но тут IsLeapYear() поможет


Медвежонок Пятачок   (2009-01-13 11:31:00) [11]

первый день следующего месяца и шаг назад


Наверх

Титульная страница Поиск, карта сайта Написать письмо