>USE newdnc >thisform.text9.value = time()&& i a ctivate it at the begining run >thisform.text13.value = time() && after seconds i activate it via command bottom1. >thisform.text14.value = thisform.TIM(thisform.text13.value, thisform.text9.value) >replace time1 with thisform.text9.value,; > time2 with thisform.text13.value,; > time3 with thisform.text14.value > > >***** Method TIM of the form > LPARAMETERS nSecs, nSec2 > LOCAL c_hours, c_min, c_znak, nLocSec > IF .NOT. TYPE("nSecs") $"CT" .OR.; > .NOT. TYPE("nSec2") $"CT" .OR.; > TYPE("nSecs") # TYPE("nSec2") > RETURN "" > ENDIF > > IF TYPE("nSecs") == "C" && Time string > nLocSecs = VAL(LEFT(nSec2,2))*3600 > nLocSecs = nLocSecs + VAL(SUBSTR(nSec2,4,2))*60+ VAL(SUBSTR(nSec2,7,2)) > nLocSecs = nLocSecs - (VAL(LEFT(nSecs,2))*3600 ++ VAL(SUBSTR(nSecs,4,2))*60+ VAL(SUBSTR(nSecs,7,2))) > ELSE >*** Suppose here You passed DateTime parameters > nLocSecs = nSec2 - nSecs > ENDIF > > c_znak = IIF(nLocSecs < 0, "-","") > nSecs = ABS(nLocSecs) > c_hours = INT(nLocSecs/3600) > nLocSecs= nLocSecs - (c_hours*3600) > c_hours = IIF(c_hours<10,"0","")+ALLTRIM(STR(c_hours,15)) > c_min = INT(nLocSecs/60) > nLocSecs= nLocSecs - (c_min*60) > c_min = IIF(c_min<10,"0","") + ALLTRIM(STR(c_min,15)) > nLocSecs= IIF(nLocSecs<10,"0","") + ALLTRIM(STR(nLocSecs,10)) > >RETURN c_znak+c_hours+":"+c_min+":"+nLocSecs > >