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

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

алгоритм преобразования TDateTime в String [D6, D7, WinXP]


INCOGNITO ©   (2005-05-23 23:19:00) 

Задача вообщем такая:

нужно реализовать алгоритм преобразования TDateTime в String в формате HH:MM:SS.

Не могу найти подробную инфу по TDateTime. На сколько я знаю, целая часть - это количество дней с какого-то опред. момента, а дробная - количество (чего? секунд, миллисекунд? или чего) с полуночи.

Пытался анализировать дробную часть... CurrToStr в 00:00:00 (полночь) часов возвращает 0,0001 в 23:59:50 около 0,9999.

Хотя в сутках 86400 секунд... Поэтому не пойму как задаётся нужная точность....

Короче, нужно получит из дробной части целую, это раз.
И разрулить с дробной частью.. Что она из себя представляет.


nikkie   (2005-05-24 01:43:00) [1]

как хорошо, когда все хорошо кончается. а то я уж думал, что будет как вчера (точно такой же вопрос и точно такой ;t первый ответ):
http://delphi.vline.ru/cgi-bin/forum.pl?id=1115493894&n=0

ЗЫ "как вчера" - это из анекдота, а не ссылка на временной интервал :)


Германн   (2005-05-24 01:30:00) [2]

2 Alx2 ©   (24.05.05 00:39) [14]
>>Anatoly Podgoretsky ©   (24.05.05 00:31) [13]
>Однако, хитроумные у вас подсказки :)

Они не столько "хитроумные" (хотя и это в них есть), сколько "подталкивающие" к нахождению решения самому! Что в последнее время стараются реализовать большинство Мастеров на сем форуме.  И в этом он и они абсолютно правы!

А истинно "хитроумные" они тогда, когда палец АП промахивается и попадает на не ту клавишу! :)


INCOGNITO   (2005-05-24 01:19:00) [3]

всё уже решил ) спасиб


Alx2   (2005-05-24 00:39:00) [4]

>Anatoly Podgoretsky ©   (24.05.05 00:31) [13]
Однако, хитроумные у вас подсказки :)


Anatoly Podgoretsky   (2005-05-24 00:31:00) [5]

Правильно, тебе же не код нужен, а знания, иначе для чего ты учишься. Вот только подсказка:
В сутках 86400 секунд, 1440 минут и 24 часа. Этого достаточно для решения.


INCOGNITO   (2005-05-24 00:05:00) [6]

ясна... Всем спасиба.
Осталось догнать как из этого сделать красивое HH:MM:SS ) Но это я сам постараюсь )


Anatoly Podgoretsky   (2005-05-23 23:58:00) [7]

Это значит, что будет 1/24


palva   (2005-05-23 23:54:00) [8]

> 0,416666(6), так?
не так, 0,0416666(6)


INCOGNITO   (2005-05-23 23:51:00) [9]

да всё дело вы том, что препод требует изобрести велосипед заново, и чтоб не подсматривать в DateTimeToString ((

Т.е. К примеру, если на часах час ночи,
то в дробной части будет: 3600000/8640000 = 0,416666(6), так?


palva   (2005-05-23 23:50:00) [10]

> всё что мне нужно - понять что из себя представляет дробная часть

Дробная часть - это доля суток. Например, 0.5 - 12 часов, 0.75 - 18 часов, 0.9 - 21 час 36 мин.


Anatoly Podgoretsky   (2005-05-23 23:46:00) [11]

Хватит и TimeToStr


sniknik   (2005-05-23 23:32:00) [12]

точного значения нет, всетаки число с плавающей запятой...

а анализировать... подключи модуль DateUtils напиши любую функцию например HourOfTheDay нажми на ней Ctrl+клик мышой, и попадеш в ее код и так дальше кликай дойдеш до разбора.../расчета, оттуда будет сразу видно "Что она из себя представляет."


INCOGNITO   (2005-05-23 23:32:00) [13]

В этой функции я уже копался... Огромная слишком.
(
Да и разрывать чужой код - не самое приятное.

всё что мне нужно - понять что из себя представляет дробная часть


Юрий Зотов   (2005-05-23 23:31:00) [14]

А дробная - это дробь и есть: количество миллисекунд, прошедших с полуночи, деленное на количество миллисекунд в сутках.

А реализовывать ничего не надо, все уже реализовано - см. FormatDateTime.


Yanis   (2005-05-23 23:28:00) [15]


> FormatDateTime+F1

Ну да.


Yanis   (2005-05-23 23:27:00) [16]

DateToStr()


Johnmen   (2005-05-23 23:26:00) [17]

FormatDateTime+F1


Наверх

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