Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.02;
Скачать: CL | DM;

Вниз

Формат времени   Найти похожие ветки 

 
Марат   (2004-04-14 08:22) [0]

Здравствуйте, мастера. Хочу спросить по какой формуле расчитывается время, т.е. дробная часть. Например, как из 18:00:00 получается 0.75. И второй вопрос: в моей программе ведется расчет контрольного срока и, допустим, время котрольного срока попало на обеденный перерыв (13:00-14:00), тогда мне нужно к контрольному сроку прибавить еще один час. Я сделал так:
DtCntr:=(контрольный срок, допустим 07.04.04 13:34:45)
DtCntr1:=DtCntr-int(DtCntr);
if DtCntr1>=strtotime("13:00:00") or DtCntr1<=strtotime("14:00:00") then
DtCntr:=DtCntr+strtotime("01:00:00");
а может быть можно как-то проще?
И еще. Данной программой пользуются много пользователей. Может ли случится какая-нибудь оказия по поводу AM,PM (00:00-11:59,00:00-23:59)?


 
Cobalt ©   (2004-04-14 08:24) [1]

TDateTime + F1.
RTFM


 
Anatoly Podgoretsky ©   (2004-04-14 08:32) [2]

1 час это сутки (1) деленое на количество часов в сутках (24)


 
Марат   (2004-04-14 08:40) [3]

По первому понял. Спасибо. А по второму? (Справку читал непонятно).


 
Юрий Зотов ©   (2004-04-14 09:01) [4]

> Марат   (14.04.04 08:22)

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

2.
а). Ошибка в условии - надо не OR, а AND. И нет скобок.
б). Преобразования строк во время - лишние, только тормозят работу. Заведите константы и используйте их:

var
 Hour13: TDateTime = 13/24;
 Hour14: TDateTime = 14/24;
 Hour1 : TDateTime = 1/24;

3. Если Вы используете преобразования строк в дату или время и установленный в системе пользователя формат даты или времени не совпадает с заданным в программе, то оказия случится - в виде EConvertError. Чтобы этого не было, либо не используйте такие преобразования, либо формируйте строку даты/времени с помощью ShortDateFormat, DateSeparator и TimeSeparator.


 
Anatoly Podgoretsky ©   (2004-04-14 09:12) [5]

Хватит и одной
OneHour = 1/24
А затем просто  DT + OneHour * 1.5



Страницы: 1 вся ветка

Текущий архив: 2004.05.02;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.038 c
7-1078839316
kamerad
2004-03-09 16:35
2004.05.02
CD ROM


4-1074747407
GrayFace
2004-01-22 07:56
2004.05.02
Есть ProcessId Как получить hProcess, его ветки, юзера, %CPU?


8-1074941361
AlexLine
2004-01-24 13:49
2004.05.02
Микшер звуковой карты


1-1081864866
Rusar
2004-04-13 18:01
2004.05.02
Вопрос по ListView


1-1081878711
wall7
2004-04-13 21:51
2004.05.02
ActionList и MessageBox