Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];

Вниз

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

 
Марат   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.033 c
14-1081333588
syte_ser78
2004-04-07 14:26
2004.05.02
Аська


7-1078560595
DuhcmanSoft
2004-03-06 11:09
2004.05.02
Системный трей


7-1079083787
Term
2004-03-12 12:29
2004.05.02
Как определить раскладку клавиатуры?


3-1081144448
dik
2004-04-05 09:54
2004.05.02
InterBase


6-1078824782
Дмитрий
2004-03-09 12:33
2004.05.02
Определение MAC адреса НЕ виндявой тачки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский