C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Функция преобразования строки во время
** Human
  Отправлено: 31.03.2005, 21:29


Не зарегистрирован







надо из файла прочитать построчно записанное время и сравнивать строки на предмет разницы в часах. Существует ли прямая функция преобразования строки в формат time и какой формат должен быть у строки
а то время может идти в строке как 2:00 либо как 23:00 надо ли прибавлять в первом случае 0?
Спасибо за будущие советы smile.gif
Георгий
Отправлено: 31.03.2005, 21:49


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



объекты класса TDateTime умеют переводить время из внутренного представления в текстовую строку
Rius
Отправлено: 31.03.2005, 21:52


Мастер участка

Группа: Участник
Сообщений: 321



Преобразование из строки в TDateTime
date/time routines
QUOTE
StrToDate
Converts an AnsiString object to a TDateTime object.
StrToDateDef
Converts an AnsiString object to a TDateTime object, with error default.
StrToDateTime
Converts an AnsiString object to a TDateTime object.
StrToDateTimeDef
Converts an AnsiString object to a TDateTime object with error default.
StrToSQLTimeStamp
Converts a string to a TSQLTimeStamp value.
StrToTime
Converts an AnsiString object to a TDateTime object.
StrToTimeDef
Converts an AnsiString object to a TDateTime object with error default.

з.ы
вот мне не везет-то! самому надо было, искал — не нашел.

Отредактировано Rius — 01/04/2005, 00:58
Gedeon
Отправлено: 01.04.2005, 07:40


Ветеран

Группа: Модератор
Сообщений: 1742



Для вычисления разницы между датами см.
QUOTE

DaysBetween
HoursBetween
MilliSecondsBetween
MinutesBetween
SecondsBetween

А вообще загляните в справку на раздел Date/time routines очень много интересного найдете.
** Harold
Отправлено: 01.04.2005, 22:36


Не зарегистрирован







Все это, конечно, хорошо. Но функции эти "ведущие" нули убивают, и более 23:59:59 не показывают. Ну, почему нельзя 199:59:59 — человеку понятно, а функция не может. Или я чего-то не понял. В итоге написал сам врукопашную — все показывает, переводит и так, как мне нравится...
Георгий
Отправлено: 02.04.2005, 00:13


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



QUOTE (** Harold @ 01/04/2005, 22:36)
Ну, почему нельзя 199:59:59 — человеку понятно, а функция не может.

а как это? мне не понятно
** Human
Отправлено: 04.04.2005, 10:57


Не зарегистрирован







QUOTE (Gedeon @ 01/04/2005, 07:40)
Для вычисления разницы между датами см.
QUOTE

DaysBetween
HoursBetween
MilliSecondsBetween
MinutesBetween
SecondsBetween

А вообще загляните в справку на раздел Date/time routines очень много интересного найдете.

Это начиная с какой версии билдера?
В моей старушке 4 этого нет
Guest
Отправлено: 04.04.2005, 11:13


Не зарегистрирован







А что написать — (минус) проблемма?
целая часть TDateTime  — дни
дробная — время
Число секунд между двумя событиями = double(TDataTime2 — TDateTime1) * (24*60*60); (с вариациями).
** Human
Отправлено: 04.04.2005, 11:47


Не зарегистрирован







QUOTE (Guest @ 04/04/2005, 11:13)
А что написать — (минус) проблемма?
целая часть TDateTime  — дни
дробная — время
Число секунд между двумя событиями = double(TDataTime2 — TDateTime1) * (24*60*60); (с вариациями).

Да написать то я написал и задачу в итоге решил biggrin.gif
Так, просто, хотел прояснить в каком билдере человеку приснились такие функции smile.gif
Guest
Отправлено: 04.04.2005, 12:00


Не зарегистрирован







с 6 (У Gedeon 6)
** Harold
Отправлено: 04.04.2005, 22:01


Не зарегистрирован







CODE

Ну, почему нельзя 199:59:59 — человеку понятно, а функция не может

Ну, может, и не совсем корректно, но есть, все же, человеко-часы, мото-часы, трудо-дни, наработка на отказ (часы) и т.д.

Встречеам необоснованные ограничения! Долой! biggrin.gif

Вернуться в Вопросы программирования в C++Builder