Форум » [x]Harbour » Время работы программы » Ответить

Время работы программы

Dima: Как вычислить сколько времени программа отработала после запуска в формате дни:часы:минуты ?

Ответов - 7

Andrey: Это у меня есть. При старте программы ставишь: *========================================================================== INIT PROCEDURE Init() Public SetTimeStart M->SetTimeStart := SECONDS() ......... RETURN А при выходе в процедуре: *========================================================================== EXIT PROCEDURE EXIT2WIN() LOCAL .... cTime := SECTOTIME( SECONDS() - M->SetTimeStart ) nClock := VAL(SUBSTR(cTime,1,2)) IF nClock == 0 cTimeStr := SUBSTR(cTime,4,2)+ " мин. "+SUBSTR(cTime,7,2)+ " сек." ELSE cTimeStr := SUBSTR(cTime,1,2)+ " час. " cTimeStr := cTimeStr+SUBSTR(cTime,4,2)+ " мин. "+SUBSTR(cTime,7,2)+ " сек." ENDIF cMess := ";Вы проработали в программе: "+cTimeStr+" !;;" ALERT(cMess) ......... RETURN

Andrey: Dima пишет: дни: Это сам добавишь....

Dima: Andrey Seconds() сбрасывается при наступлении новых суток


Andrey: Тогда ставь Дату и в зависимости от неё прибавляй проработанное время...

Dima: Покопал кое что. Можно не изобретать велосипед а юзать ft_Elapsed

Andrey: Dima пишет: Можно не изобретать велосипед а юзать ft_Elapsed Откуда данная функция ?

Dima: Andrey пишет: Откуда данная функция ? HBNF [pre2] /* $DOC$ $NAME$ ft_Elapsed() $CATEGORY$ Date/Time $ONELINER$ Return elapsed time between two days and/or times $SYNTAX$ ft_Elapsed([ <dStart> ], [ <dEnd> ], ; <cTimeStart>, <cTimeEnd>) -> aTimedata $ARGUMENTS$ <dStart> is any valid date in any date format. Defaults to Date(). <dEnd> is any valid date in any date format. Defaults to Date(). <cTimeStart> is a valid Time string of the format 'hh:mm:ss' where hh is hours in 24-hour format. <cTimeEnd> is a valid Time string of the format 'hh:mm:ss' where hh is hours in 24-hour format. $RETURNS$ A two-dimensional array containing elapsed time data. $DESCRIPTION$ ft_Elapsed() calculates the elapsed time between two Date/Time events. It returns an array which contains the following data: aRetVal[ 1, 1 ] Integer Days aRetVal[ 1, 2 ] Total Days (nn.nnnn) aRetVal[ 2, 1 ] Integer Hours aRetVal[ 2, 2 ] Total Hours (nn.nnnn) aRetVal[ 3, 1 ] Integer Minutes aRetVal[ 3, 2 ] Total Minutes (nn.nnnn) aRetVal[ 4, 1 ] Integer Seconds aRetVal[ 4, 2 ] Total Seconds (nn) $EXAMPLES$ ft_Elapsed( hb_SToD( "19901128" ), hb_SToD( "19901130" ), "08:00:00", "12:10:30" ) // will return: ? aRetVal[ 1, 1 ] // -> 2 ( Days ) aRetVal[ 1, 2 ] -> 2.1740 Days ? aRetVal[ 2, 1 ] // -> 4 ( Hours ) aRetVal[ 2, 2 ] -> 52.1750 Hours ? aRetVal[ 3, 1 ] // -> 10 ( Minutes ) aRetVal[ 3, 2 ] -> 3130.5000 Minutes ? aRetVal[ 4, 1 ] // -> 30 ( Seconds ) aRetVal[ 4, 2 ] -> 187830 Seconds $END$ */ [/pre2]



полная версия страницы