| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
LordNemesis Master


Registrado: 31 Dic 2003Mensajes: 340Ubicación: México
|
Publicado: Vie 03 Sep, 2004 5:08 am Asunto: Entero en segundos a formato hh:mm:ss |
|
|
Saludos....
Tengo una variable entera que me representa n cantidad de segundos... desde 0 segundos hasta 60,100,200 y mas segundos....
lo que quiero hacer es mostrar esa cantidad de segundos en formato hh:mm:ss...
Ejemplo, si tengo 20 segundos mostraria:
00:00:20...
si tengo 90 segundos mostraria...
00:01:30
y asi sucesivamente...
claro esta que la funcion FormatFloat("hh:mm:ss",Variable) me servira.. pero po rlo que he visto, primero necesito convertir ese entero, para que la funcion lo entienda.... me imagino que ha de ser algun tipo de division entgre algo.. pero la verdad no tengo idea.. espero alguien pueda darme un tip.... desde ya muchas gracias....
Saludos  _________________ Dirección Municipal de Informática
H. Ayuntamiento de Tijuana
Arriba Lopez Obrador !!!
Los Mexicanos Merecemos Respeto !!! |
|
| Volver arriba |
|
 |
Tugui Master


Registrado: 09 Nov 2002Mensajes: 663
|
Publicado: Vie 03 Sep, 2004 10:02 am Asunto: |
|
|
No estoy muy seguro pero he probado y me ha salido esto:
| Código: |
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int horas,minutos,segundos;
horas =0;
minutos =0;
segundos =0;
horas = Edit1->Text.ToInt()/3600;
minutos = (Edit1->Text.ToInt()/60)-(horas*60);
segundos = Edit1->Text.ToInt()-((minutos*60)+(horas*3600));
Edit2->Text = IntToStr(horas)+":"+IntToStr(minutos)+":"+IntToStr(segundos);
}
|
_________________ ¡ADELANTE CON ESTE SUPER FORO! |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Vie 03 Sep, 2004 10:14 am Asunto: |
|
|
Se me ocurre algo así:
| Código: | int nHora, nMin, nSecs, nResto;
TDateTime tHora;
nHora = miVariable / 3600;
nResto = miVariable - 3600 * nHora;
nMin = nResto / 60;
nSecs = nResto - 60 * nMin;
tHora = EncodeTime(nHora, nMin, nSecs, 0);
Label1->Caption = tHora.FormatString("hh:nn:ss"); |
Voy dividiendo los segundos totales por los que tiene una hora (3600) y un minuto (60); el resto que me queda serán segundos. El problema te puede venir si el tiempo puede ser más de un día (86.400 segundos).
Ojo con la instruccion FormatString; los segundos se representa con n minúscula y no com m. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
LordNemesis Master


Registrado: 31 Dic 2003Mensajes: 340Ubicación: México
|
Publicado: Vie 03 Sep, 2004 5:10 pm Asunto: |
|
|
Muchas gracias a ambos, funciona a la perfección!!! (y) _________________ Dirección Municipal de Informática
H. Ayuntamiento de Tijuana
Arriba Lopez Obrador !!!
Los Mexicanos Merecemos Respeto !!! |
|
| Volver arriba |
|
 |
|