Главная страница
    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.46 MB
Время: 0.03 c
3-1081240486
Sirus
2004-04-06 12:34
2004.05.02
Как бы организовать выборку из процедур???


4-1078844305
Ландграф Павел
2004-03-09 17:58
2004.05.02
Нажатие кнопки на чужом окне


7-1078889162
Graf
2004-03-10 06:26
2004.05.02
Программная перезагрузка/выключение


8-1075581536
dementiy04
2004-01-31 23:38
2004.05.02
ACDSee своими руками


1-1082023145
Cosinus
2004-04-15 13:59
2004.05.02
Принцип работы c TBitMap ...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский