Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-07-2011
Avatar de weke
weke weke is offline
Miembro
 
Registrado: may 2004
Ubicación: Valencia
Posts: 170
Poder: 20
weke Va por buen camino
Question Error al calcular horas con MinutesBetween

Buenos días,
me pasa algo muy curioso que no se si es por error al hacer el cálculo o es algo interno de delphi.

A partir de 2 horas, calculo la diferencia que hay entre ambas para mostrarlo por pantalla y por norma general lo hace de forma correcta pero en ocasiones no lo hace bien. Una de las horas que he detectado es cuando la hora de inicio es 07:00:00 y la de fin 11:00:00, esto tendría que devolver 4 horas y en realidad me está devolviendo 3.98 horas.

A continuación pongo el código en el que lo calculo por si hubiera algún error u otro modo de calcularlo.

Código Delphi [-]
            minutos := MinutesBetween(HoraInicio, HoraFin);
            horas := StrToFloat(FormatFloat('#0.00', (minutos / 60)));
            ShowMessage('Horas: ' + FloatToStr(horas)); // mostramos las horas de diferencia

Gracias de antemano y un saludo.
__________________
De lo bueno lo mejor, de lo mejor lo superior.
Responder Con Cita
  #2  
Antiguo 11-07-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Intentalo de este modo:
Código Delphi [-]
  minutos := MinutesBetween(HoraInicio, HoraFin);
  horas := Round(minutos/60);
  ShowMessage('Horas: ' + FloatToStr(horas));

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 11-07-2011
Avatar de weke
weke weke is offline
Miembro
 
Registrado: may 2004
Ubicación: Valencia
Posts: 170
Poder: 20
weke Va por buen camino
Buenas tardes,
gracias por la respuesta pero ya lo he solucionado. Al final he restado las 2 horas y a partir de esa hora he calculado las horas y minutos resultantes, necesito mostrar decimales para cuando no sean horas completas.

A continuación pongo el código fuente:

Código Delphi [-]
            DecodeTime((HoraFin - HoraInicio), horas, minutos, segundos, milisegundos);
            minutos_calculados := minutos / 60;
            horas_calculadas := horas;
            horas_calculadas := StrToFloat(FormatFloat('#0.00', (horas_calculadas + minutos_calculados)));

Un saludo.
__________________
De lo bueno lo mejor, de lo mejor lo superior.
Responder Con Cita
  #4  
Antiguo 11-07-2011
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
MinutesBetween te cuenta solo los minutos completos.
MinuteSpan te cuenta los minutos completos y te manda los minutos incompletos como una fracción.

Tal vez podrías intentar con MinuteSpan... o hourspan, monthspan, yearspan, etc, etc.
__________________

Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Calcular horas extras @-Soft MS SQL Server 1 12-04-2006 12:26:28
Problemas con MinutesBetween romansiux Varios 4 21-05-2005 14:27:56
calcular horas, con strings/char Telemaco Conexión con bases de datos 1 30-03-2004 21:56:30
Calcular Horas y minutos entre dos TTime Delphos Varios 4 26-01-2004 17:10:14
Calcular diferencia entre horas toni.vi API de Windows 2 30-07-2003 11:35:40


La franja horaria es GMT +2. Ahora son las 08:34:25.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi