FUNCTION stohms PARAMETERS t_str PRIVATE t_str, hrs, mins, secs, isdec, rvalue LOCAL isNeg IF m.t_Str < 0 m.t_Str=t_str*-1 m.isNeg=.t. ELSE m.isNeg=.f. ENDIF IF m.t_str - INT(m.t_str) # 0 && if decimal places isdec = .T. ELSE isdec = .F. ENDIF hrs = INT(m.t_str/3600) && get the number of hours t_str = m.t_str - (m.hrs * 3600) && subtract hours from t_str mins = INT(m.t_str/60) && get the number of minutes t_str = m.t_str - m.mins * 60 && subtract minutes from str. IF .NOT. m.isdec && if no decimal places IF m.t_str >= 10 m.secs = LTRIM(STR(m.t_str)) ELSE m.secs = '0' + LTRIM(STR(m.t_str)) && pad out string ENDIF ELSE && if decimal places IF m.t_str >= 10 m.secs = STR(m.t_str,5,2) ELSE m.secs = '0' + STR(m.t_str,4,2) && pad out string ENDIF ENDIF hrs = LTRIM(STR(m.hrs)) && convert to string mins = LTRIM(STR(m.mins)) *** stuff string into '00' hrs = STUFF('00',3-LEN(m.hrs),LEN(m.hrs),m.hrs) mins = STUFF('00',3-LEN(m.mins),LEN(m.mins),m.mins) *** assemble rvalue if m.secs="60" mins=alltr(str(val(m.mins)+1)) secs="00" endif if m.mins="60" hrs=alltr(str(val(m.hrs)+1)) mins="00" ENDIF IF LEN(m.mins)<2 mins=[0]+m.mins ENDIF rvalue = m.hrs + ':' + m.mins + ':' + m.secs IF m.isNeg rValue=rValue+[-] ENDIF RETURN(rvalue) *: EOF: STOHMS.PRG