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

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

Работа с 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" ?


Наверх

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