Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TDateTime и DateTimePicker 
:(
    Опции темы
temp_user
Дата 20.10.2006, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 27.9.2006

Репутация: нет
Всего: нет



Имеется задача: необходимо получить от пользователя дату и время и провести с ними определённые манипуляции. При этом возникает несколько вопросов.

1) На глаза попался класс TDateTime. Вопрос следующий: имеется ли у этого класса метод получения дня недели?
2) В качестве компонента для ввода даты,  обратил внимание на DateTimePicker. Судя по названию его можно использовать для ввода времени, как? Или же необходимо использовать другой компанент, какой?
3) Возможно кто-нибуть предложит использование альтернативных классов, компонентов для решения этой задачи.

PM MAIL   Вверх
BreakPointMAN
Дата 20.10.2006, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 15.9.2004
Где: Saratov

Репутация: 6
Всего: 24



1) используй функции DayOfWeek и DayOfTheWeek:

Цитата

DayOfWeek
Returns the day of the week for a specified date.

Unit

SysUtils

Category

date/time routines

extern PACKAGE Word __fastcall DayOfWeek(const System::TDateTime DateTime);

Description

DayOfWeek returns the day of the week of the specified date as an integer between 1 and 7, where Sunday is the first day of the week and Saturday is the seventh.

Note:    DayOfWeek is not compliant with the ISO 8601 standard, which defines Monday as the first day of the week. For an ISO 8601 compliant version, use the DayOfTheWeek function instead.




Цитата

DayOfTheWeek
Returns the day of the week represented by a TDateTime value.

Unit

DateUtils

Category

date/time routines

extern PACKAGE Word __fastcall DayOfTheWeek(const System::TDateTime AValue);

Description

Call DayOfTheWeek to obtain the day of the week represented by a specified TDateTime value. DayOfTheWeek returns a value between 1 and 7, where 1 indicates Monday and 7 indicates Sunday.

Note:    DayOfTheWeek is ISO 8601 compliant (where Monday is considered the first day of the week). To obtain the day of the week where Sunday is considered the first day of the week, use the DayOfWeek function instead.
Tip:    To make the return value more readable, use the Day of week constants.






2) используй свойство Kind компонента TDateTimePicker:

Цитата

TDateTimePicker::Kind 

Determines whether the component is a date selector or a time selector.

enum TDateTimeKind {dtkDate, dtkTime};
__property TDateTimeKind Kind = {read=FKind, write=SetKind, nodefault};

Description

If the Kind property is dtkDate, the control is configured to support date editing. The default format gives only the date portion of the control value, and a drop-down calendar is available if the DateMode property is dmComboxBox.

If the Kind property is dtkTime, the control is configured to support time editing. The default format give only the time portion of the control value, but the date portion can also be edited if the Format property includes date field codes..



--------------------
"Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце")
PM WWW ICQ   Вверх
temp_user
Дата 23.10.2006, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 27.9.2006

Репутация: нет
Всего: нет



Спасибо за ответ.
Появился ещё вопрос. Как можно сохранить данные в одном TDateTime объекте, используя два DateTimePicker для задания времени и даты.
Может есть ф-ции типа:

Код

TDateTime datatime;
datatime.setData();
datatime.setTime();

PM MAIL   Вверх
temp_user
Дата 23.10.2006, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 27.9.2006

Репутация: нет
Всего: нет



Решил задачу так:
DateTime = static_cast<int> (DateTimePicker1->DateTime) + (static_cast<double> (DateTimePicker2->DateTime) - static_cast<double> 
(static_cast<int> (DateTimePicker2->DateTime)));

Неужели нет способа поэлегантней?

Это сообщение отредактировал(а) temp_user - 23.10.2006, 10:26
PM MAIL   Вверх
Romikgy
Дата 23.10.2006, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 11
Всего: 146



Цитата(temp_user @  23.10.2006,  08:47 Найти цитируемый пост)
Неужели нет способа поэлегантней?

чего по элегантней ?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Vyacheslav
Дата 23.10.2006, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 47
Всего: 59



Устанавливаем два DateTimePicker
У первого Kind устанавливаем в dtkDate, очищаем поле Time. В нем будет записано 0:00:00
У второго устанавливаем Kind в dtkTime, очищаем поле Date. В результате в поле будет 30.12.1899
Цитата

TDateTime dateTime =     DateTimePicker1->Date  +   DateTimePicker2->Time;



--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Rodman
Дата 23.10.2006, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 7
Всего: 122



Цитата(temp_user @  20.10.2006,  15:22 Найти цитируемый пост)
имеется ли у этого класса метод получения дня недели


DayOfTheWeek

и вооще глянь библиотеку DateUtils

PM MAIL WWW Skype GTalk YIM MSN   Вверх
evgeni_G
Дата 4.11.2006, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 4.11.2006

Репутация: нет
Всего: нет



А как пользоваться функцией DayOfWeekName. Нашел тут в поиске.
PM MAIL   Вверх
Reptile
Дата 6.11.2006, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 30.9.2006
Где: Украина, Первомай ск

Репутация: 2
Всего: 3



Цитата

C++ syntax:

extern PACKAGE Word __fastcall DayOfWeek(const System::TDateTime DateTime);

Description

DayOfWeek returns the day of the week of the specified date as an integer between 1 and 7, where Sunday is the first day of the week and Saturday is the seventh.

Note:    DayOfWeek is not compliant with the ISO 8601 standard, which defines Monday as the first day of the week. For an ISO 8601 compliant version, use the DayOfTheWeek function instead.

Справку читаеш?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0551 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.