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

Вниз

Как вывести время техпроцесса в чч:мм:сс, если оно превышает 24 ч   Найти похожие ветки 

 
Key999   (2007-04-25 17:41) [0]

Здравствуйте. Мастера, не подскажите, как лучше вывести в поле время техпроцесса, если оно превышает 24 часа. Используемый мною для этого код таков: IntToStr((timeproc div 3600)+RightStr(FormatDateTime("hh:mm:ss",timeproc/86400),6), где timeproc в секундах. Понимаю что это не оптимально. Но есть-ли для функции FormatDateTime в дельфи какой-нибудь формат, позволяющий без искажений отобразить такое, например, время "121:00:00"?


 
DVM ©   (2007-04-25 17:57) [1]


> позволяющий без искажений отобразить такое, например, время
> "121:00:00"?

ну это же неправильно, тут явно надо сутки выделить

Вот я тут использую нечто подобное, правда для разницы между датами, но суть понятна:

function FormatBetweenDates(Date1, Date2: TDateTime): string;
var
 days, hours, minutes, seconds: int64;
begin
 days := DaysBetween(Date1, Date2);
 hours := HoursBetween(Date1, Date2) - days * 24;
 minutes := MinutesBetween(Date1, Date2) - days * 24 * 60 - hours * 60;
 seconds := SecondsBetween(Date1, Date2) - days * 24 * 3600 - hours * 3600 - minutes * 60;
 result := IntToStr(days) +  " äí. " + IntToStr(hours) + " ÷. " + IntToStr(minutes) + " ì. " + IntToStr(seconds) + " ñ. ";
end;


 
Desdechado ©   (2007-04-25 17:57) [2]

Это не время, а длина временнOго интервала.


 
key999   (2007-04-25 18:20) [3]

To: DVM & Desdechado
В том-то и дело, что мне дни выделять не надо. Есть прибор, с которого я принимаю данные о прошедшей длительности техпроцесса и эти значения я принимаю как время программное. На базе этого программного, а также реального времени программа дает команду различным перифирийным устройствам на выполнение некоторых действий. Мне просто надо как-то по-человечески отобразить это программное время, но размерность такова "часы:минуты:секунды". Просто в технологической карте так прописано, и дни никто не поймет. А за идею СПАСИБО


 
Плохиш ©   (2007-04-25 18:32) [4]


> Key999   (25.04.07 17:41)  


> key999   (25.04.07 18:20) [3]

За час 20 можно уже было несколько десятков таких функций написать...


 
antonn.pda   (2007-04-25 18:33) [5]

хранить время в секундах. а дальше просто:
часы=сек div 60*60
мин=(сек-часы*60*60) div 60
секк=(сек-часы*60*60-мин*60) div 60

вывод=часы.мин.секк


 
key999   (2007-04-25 19:02) [6]

>Плохиш ©
20? Таких? За час? Маловато будет... Это просто время просмотра... ;-) Всем СЭНКС



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

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

Наверх




Память: 0.48 MB
Время: 0.05 c
15-1176389994
GeLLeR
2007-04-12 18:59
2007.05.13
Как перевести код


15-1176458015
Kostafey
2007-04-13 13:53
2007.05.13
Прочитал в разделе требования к системе.


15-1176037360
Nic (ro)
2007-04-08 17:02
2007.05.13
Siemens A50


2-1177508495
Key999
2007-04-25 17:41
2007.05.13
Как вывести время техпроцесса в чч:мм:сс, если оно превышает 24 ч


15-1176287703
Knight
2007-04-11 14:35
2007.05.13
Чё-то какие-то заморочки пошли с VBA... сперва с Access теперь...