![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с time_t [D7, WinXP]
Альберт © (2009-07-24 20:12:00)Здравствуйте! Как парсить переменные типа time_t?
Anatoly Podgoretsky (2009-07-26 10:21:00) [1]> Альберт (26.07.2009 02:16:13) [13]
Не надо врать, в справке есть эта и еще несколько других функций для поддержки Юникса. Именно в Д7
Альберт (2009-07-26 02:16:00) [2]Спасибо большое! Разобрался, написал этот модуль. Все довольно просто оказалось. Справка действительно не содержит Unix функции. От SysUtils отказался из-за лишнего размера (ну, просто уж так нравится). Еще раз спасибо.
palva (2009-07-25 00:51:00) [3]
> достаточно просто прибавить 25569
Сначала надо разделить на число секунд в сутках, как в [4]
palva (2009-07-25 00:47:00) [4]
> Только без SysUtils. Сам алгоритм.
Почему не хотите использовать готовые функции? gmtime, localtime, mktime, которые предоставлены вам в msvcrt.dll ?
Почему не хотите использовать SysUtils и довольно простое приведение к TDateTime ?
turbouser (2009-07-25 00:34:00) [5]
> DrPass © (25.07.09 00:26) [8]
Так и есть... После моего знакомства с clarion-ом это кажется вполне логичным решением :)
p.s.
убить мало создателей клариона...
Anatoly Podgoretsky (2009-07-25 00:31:00) [6]> Альберт (24.07.2009 22:46:04) [4]
Неправильная у тебя справка, без слова Unix
DrPass (2009-07-25 00:26:00) [7]Судя по всему, ничего с ним не нужно делать. Чтобы получить из него TDateTime, достаточно просто прибавить 25569, и потом можно применять любые доступные для TDateTime функции
Альберт (2009-07-24 23:24:00) [8]Только без SysUtils. Сам алгоритм.
Альберт (2009-07-24 22:57:00) [9]Мне нужно научиться выделять дату и время из этого числа, а также выборочно менять (секунды, минуты, числа и др). Очень буду рад разъяснению.
Альберт (2009-07-24 22:46:00) [10]const
// Sets UnixStartDate to TDateTime of 01/01/1970
UnixStartDate: TDateTime = 25569;
function UnixToDateTime(USec: Longint): TDateTime;
begin
Result := (Usec / 86400) + UnixStartDate;
end;
В модуле SysUtils функции заточены под TDateTime. В справке, кроме константы 25569 не нашел ничего.
Сергей М. (2009-07-24 22:46:00) [11]А зачем его "парсить" ?
Anatoly Podgoretsky (2009-07-24 21:41:00) [12]Справку смотрел, что увидел?
Альберт (2009-07-24 21:33:00) [13]Это тип времени в С++ есть. Он занимает 4 байта. Время по юникс. Он отличается от TDateTime.
Нашел правильный ответ по ссылке
http://aleksnegirov.blogspot.com/2008/04/unix-java-tdatetime.html
Сергей М. (2009-07-24 20:56:00) [14]Что еще за "типа time_t" ?