Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Converting seconds to HH:MM:SS
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Versions des environnements
Visual FoxPro:
VFP 9 SP2
OS:
Vista
Network:
Windows 2008 Server
Database:
MS SQL Server
Divers
Thread ID:
01358171
Message ID:
01358193
Vues:
14
This is ugly but it works:
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
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform