| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Работа с системным временем и календарём |
| Автор: Hellen 24.1.2009, 21:49 |
| Пользователь выбирает из выпадающего списка день и месяц начало работ и аналогично завершение работы. После этого появляется календарь, на календаре отображается диапазон выбранного участка времени. Первый вопрос:-Как реализовать календарь? Второй вопрос:-Как посчитать кол-во часов в этом диапазоне? Спасибо! Если можно по календарю: |
| Автор: SkyAngel 25.1.2009, 00:16 |
| Собственно в группе Samples есть компонент - TCalendar. Если не нравиться этот - в группе Win32 есть 2 компонента - TmonthCalendar. Ещё может помочь TDateTimePicker. В общем используй эти компоненты. Свяжи одного с другим. Я думаю - разберёшься. Для подсчёта часов - просто посчитай количество дней между датой и теперешним днём. Для получения системной даты в виде строки - используй DateToStr(Date). А там можешь вырезать нужные символы. Для получения выбранной даты - используй ИмяКалендаря.Date; Там сново достанешь необходимые символы. Но если я не ошибаюсь - то можно даже вычитать даты одну из другой. Но это по желанию, как делать ;). |
| Автор: Bose 25.1.2009, 01:53 |
| Hellen, смотри справку по ключевому слову dateutils |
| Автор: Hellen 25.1.2009, 17:12 | ||||||||
Прочла и не одну, системное время и календари откровенно забивала, типа эта чушь мне не нужна будет, а сейчас столкнулась.
Посмотрим
Спасибо я поюзаю и вернусь, тоесть я не прощаюсь. |
| Автор: Данкинг 25.1.2009, 17:53 | ||
"Delphi в подлиннике" Фаронова - там про все основные компоненты сказано. Если всю эту книгу прочесть, то будешь иметь представление о том, какие компоненты существуют в принципе. |
| Автор: Dobermann 25.1.2009, 17:58 | ||
|
| Автор: Данкинг 25.1.2009, 19:07 | ||||
В смысле? |
| Автор: Hellen 26.1.2009, 22:45 |
| Я поюзала и вернулась. Мне необходимо что бы пользователь на открывшемся календарике отметил не рабочие субботы и воскресения. Сначала при помощи DateTimePicker1 и DateTimePicker2 выбирает числа- Далее появляется календарь, в этом календаре он ручками отмечает не рабочие дни и далее программа считает кол-во дней. Возможно это? Подскажите пжлста. В свойствах объекта (календарей) я диапазона не нашла. И возможность выделения дней тоже. Что за свойство DoubleBuffered ?? что за двойной буфер? |
| Автор: Hellen 26.1.2009, 23:05 |
| http://forum.vingrad.ru/forum/topic-153495/unread-1.html нашла в поиске вот чего, но там как то скучно....... |
| Автор: Данкинг 26.1.2009, 23:05 |
| Hellen, без БД не обойтись. У нас на работе я сделал так, что юзер каждый день отмечается, т.е. ставит себе, сколько часов он отработал, данные эти хранятся в MDB. На форме лежит календарь, по умолчанию при запуске ставится сегодняшняя дата. В конце месяца делается отчёт по всем датам заданного диапазона с подсчётом и суммарного времени для каждого работника, который затем выводится в Excel. Не знаю, это откуда вообще? Добавлено через 45 секунд Угу, цветных картинок нет. |
| Автор: Hellen 26.1.2009, 23:58 | ||||||
А что будет храниться в таблице. Можно чуть поподробней схему действия развернуть???
"Я знаю что я ни чего не знаю, но многие не знают и этого" - Это дядька Сократ сказал. Добавлено через 2 минуты и 26 секунд Это свойство объектов DateTimePicker и MonthCalendar |
| Автор: Данкинг 27.1.2009, 00:17 | ||||
Не знаю, в общем, я и codegear-то не видел ни разу. Но думаю, что это нечто такое, без чего можно обойтись, при этом спокойно живя и размножаясь.
Я же говорю, у меня в MDB. У меня две таблицы: одна с юзерами, где хранится ник, под которым они заходят, и полное имя, которое отображается в распечатке часов, т.е. ник M@SHUTKA_LUCHCHE_VSEH!!!)))))), имя - Подъяблонская Мария. Добавлено @ 00:18 Кто издевается - я? |
| Автор: Hellen 27.1.2009, 00:41 |
| Ну мне такая крутизна не нужна, с паролями и никами. у меня задачка то копеечная. Две даты и подсчитать кол-во дней между ними. Но приэтом не считать те дни, которые пользователь вычеркнул из календаря. Не знаю в какую сторону двигаться, если сразу знать что обычными компонентами не получится, я бы двигалась в другом направлении. |
| Автор: Данкинг 27.1.2009, 00:48 |
Вероятно, в ту же, что и я, только задача обратная: внести в базу те дни, в которые работник отсутствовал. |
| Автор: Hellen 27.1.2009, 00:53 |
| внести в базу те дни в которые работник присутствовал на работе. Меня больше пугает процесс как юзер будет вычеркивать дни, самое простое для него выделить дни на каледаре. А как ещё можно сделать? |
| Автор: Данкинг 27.1.2009, 01:10 |
| Кнопку кинуть. Отметил дату на календаре - кликнул кнопку - дата внеслась. |
| Автор: Hellen 27.1.2009, 21:27 |
| Отметил вторую дату на календаре - кликнул кнопку - и опять дата внеслась. Ну что ж мне с тобой делать??? буду пробовать...... Добавлено через 2 минуты и 22 секунды А что бы диапазон времени показывала например с 27го января по 8 марта, этого можно добится используя выше указаные компоненты? |
| Автор: Данкинг 27.1.2009, 21:34 | ||
А что надо со мной делать?!
Кто показывала? Объект "календарь" представляешь? |
| Автор: Hellen 27.1.2009, 21:43 |
| Объект календарь отображает один месяц, надо его заставить отображать полтора месяца. Вот что я спрашивала. можно так? |
| Автор: Данкинг 27.1.2009, 23:27 |
Низя. |
| Автор: Hellen 28.1.2009, 00:27 | ||||
| Можно, уже сделала. мин дат - макс дат Мне надо отобразить этот диапазон делаю вот так:
теперь узнать сколько дней:
он отображает 39840 дней как мне посчитать сколько в этом промежутке дней? Добавлено через 1 минуту и 9 секунд Он выводит число 39840 не зависимо какой у календаря промежуток времени текущий |
| Автор: Данкинг 28.1.2009, 00:53 | ||
Попробовал, поставил минимальную дату на календаре 21.01.2009, так он как кликался назад за эту дату, так и кликается; в общем, не знаю, что это за свойства такие и как они работают.
Странно, что он вообще что-либо отображает, поскольку ты тип "дата" переводишь из числа с плавающей точкой в текст. |
| Автор: Hellen 28.1.2009, 20:49 | ||
|
| Автор: Данкинг 28.1.2009, 22:04 |
Да я и не думал... |