Resumen Horas y minutos

Mensaje enviado por "Ignacio Napal" <inapal@equiplus.com>


Tu problema parte en que el sistema horario es sexagesimal, y lo estás almacenando en variables de formato decimal.

Cuando indicas que 6,3 horas + 2,5 horas suma 8,8 horas, esto es correcto en el sistema decimal. Hay que tener en cuenta que 6,3 horas NO ES 6 horas y 30 minutos, sino 6 horas y 0.3 de hora, que resulta:
    0.3 de 1 hora = 0.3 de 60 minutos = 0.3 x 60 = 18 minutos, por lo tanto 6,3 horas = 6 horas y 18 minutos

De igual manera, 2,5 horas NO ES 2 horas y 50 minutos, sino 2 horas y 0.5 de hora, que resulta:
    0.5 de 1 hora = 0.5 de 60 minutos = 0.5 x 60 = 30 minutos, por lo tanto 2,5 horas = 2 horas y 30 minutos

Asimismo, 8,8 horas NO ES 8 horas y 80 minutos, sino 8 horas y 0.8 de hora, que resulta:
    0.8 de 1 hora = 0.8 de 60 minutos = 0.8 x 60 = 48 minutos, por lo tanto 8,8 horas = 8 horas y 48 minutos

Si analizamos los resultados sexagesimales, la suma de (6 horas y 18 minutos) y (2 horas y 30 minutos) es precisamente (8 horas y 48 minutos), por lo que resulta válido si se expresa en forma decimal: 6,3 horas + 2,5 horas = 8,8 horas.

En sentido inverso, para almacenar 6 horas y 30 minutos en un campo decimal, debe hacerse la siguiente conversión:
6 horas y 30 minutos = 6 horas + (30 min / 60 min) = 6 horas + 0,5 = 6,5 horas (en formato decimal)

Para almacenar 2 horas y 50 minutos en un campo decimal, debe hacerse la siguiente conversión:
2 horas y 50 minutos = 2 horas + (50 min / 60 min) = 2 horas + 0,83= 2,83 horas (en formato decimal)

Todas estas conversiones debes hacerlas cada vez que muestres los resultados, aunque internamente manejes los valores en formatos decimales.
Esto NO ocurre si se almacenan las horas con valores de tipo DATE (que precisamente están para evitar estas confusiones).

Ignacio Napal
Equiplus S.A.
email: inapal@equiplus.com

----- Original Message -----
From: Juan C. Rosende Amor
To: <vb-esp@ccc.uba.ar>
Sent: Wednesday, October 11, 2000 5:42 AM
Subject: vb-esp : Horas y minutos


> Hola a tod@s.
>
> Trabajo con una tabla que en un campo numerico (doble y con dos decimales)
a veces me introducen un
> valor de kilometros y, otras veces, el valor es de horas.
>
> Cuando sumos los kilometros, no problem, 6,3 + 2,8 = 9,11
>
> Pero cuando el valor es de horas y minutos: 6,3 horas + 2,5 horas deberia
sumar 9,2 en lugar de 8,8.
>
> Como podria hacer esto ?
>
> Muchas gracias por vuestra atencion.
>
> Juan Rosende
>
>
>



Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com