![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Hora en entero a hora en decimal.
Jóvenes Delphineros, buena tarde...
Les platico mi problema. Resulta que en los desarrollos de la empresa manejamos por separado la fecha como un número Double y la hora como un entero resultado del cálculo de las horas y minutos transcurridos desde la medianoche (00:00) del día que se trate. Como sabemos, el tipo TDateTime es un número doble conformado por la fecha (la parte entera del número) y la hora en precisión de hasta milisegundos (la parte en decimales del número); pero ahora se me viene el problema que debo obtener DE REGRESO el valor TDateTime a partir de sumar la fecha (un número entero, en éste caso) a OTRO NÚMERO ENTERO que significa la hora (un número entero con precisión de hasta minutos) en el siguiente formato:
Siendo 675 el equivalente a las 11:15 am. Mi problema principal ahora se remite a obtener el número decimal que equivalga a las 11:15 para sumarlo al número entero que me significa la fecha (quedando como 41860.58101212343564 o algo así) y poder hacer cálculos a partir de éste número. Intenté obtener la hora con ésta operación:
y
... pero en ambos casos, el número NO REPRESENTA las 11:15 am. ¿Podría alguien orientarme en cómo resolver ésto? Es decir, obtener la hora en un número decimal a partir de un número entero. Agradeciendo de antemano su atención, y en espera de sus ideas, por locas que puedan parecer.
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively... "Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum. Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco |
#2
|
||||
|
||||
En terminos generales, es pesima idea hacer calculos manuales de fechas y horas. Es algo particularmente lleno de problemas, casos especiales y demas. Osea, usa datetime y las funciones hechas para operar sobre ellas.
p.D: Simpre me ha parecido increible que se "inventen" tipos de datos especiales en vez de usar los nativos del lenguaje/base de datos. Porque lo haces? Nunca he sabido de un verdadero argumento, y solo existe 1 caso donde es vagamente justificable: hacer un datamart/olap
__________________
El malabarista. |
#3
|
||||
|
||||
... y falta el otro caso donde es plenamente justificable: Cuando así te lo ordena el que firma los cheques de pago...
![]() ![]() ![]() ![]()
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively... "Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum. Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco Última edición por TiammatMX fecha: 14-01-2013 a las 22:06:39. |
#4
|
||||
|
||||
Si quieres convertir 675 unidades minutos en la parte fraccionaria que representaría dentro de un TDateTime, basta con una simple regla de tres (que en realidad se reduce a una simple división):
Código:
1 día X ------------------ ----------- MinsPerDay minutos 675 minutos X = (675 * 1) / MinsPerDay = 675 / MinsPerDay = 0.46875 días ¿Pos pa' quién trabajas Felipe? ![]() |
#5
|
||||
|
||||
Para alguien que en su momento consideró que manejar la hora como entero era mejor que usar TDateTime...
![]() ![]() ![]() ![]()
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively... "Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum. Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco |
#6
|
||||
|
||||
Cita:
Muchas gracias por sus aportaciones.
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively... "Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum. Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco |
![]() |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Como le resto una hora a la fecha y hora en sql server | uper | MS SQL Server | 3 | 12-10-2015 20:41:49 |
diferencia de campos hora y almacenarlo en hora | gonza_619 | Varios | 7 | 06-12-2010 01:51:03 |
seleccionar hora en datetimepicker desde hora especifica | gonza_619 | Varios | 4 | 21-11-2010 20:42:19 |
Pasar un entero a decimal? | Alejo15x | Varios | 1 | 02-02-2010 21:16:34 |
Convertir de hora GMT a hora local | marceloalegre | Varios | 4 | 16-05-2007 23:35:58 |
![]() |
|