Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Bibliotecas de código fuente > [GH Freebrary]
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #5  
Antiguo 28-03-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.610
Poder: 32
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
De entrada olvida los tipos TDate y TTime, que son tipos especiales de la VCL equivalentes a TDateTime, pero en esencia útiles para asuntos de RTTI, como el diseño de componentes que lleven propiedades de fecha u hora. Mientras no sea éste el caso, emplea el tipo estándar TDateTime para manejar fechas, horas y combinaciones de ambas.

Cita:
Empezado por tiammat Ver Mensaje
[...] decidió que la hora debía ser expresada por un entero para determinar los minutos transcurridos desde la media noche, es decir de 0 a 1439, y en TODA la aplicación se maneja así.
Bien, a pesar de que esa decisión de tu patrón fue casi sin duda un error, cuentas con la función nativa MinuteOfTheDay para convertir cualquier hora TDateTime a un entero que indique la cantidad de minutos transcurridos desde la hora 0. ¿La usas actualmente? Y si no, ¿cómo estás haciendo la conversión TDateTime -> minutos Integer? Para hacer la conversión inversa (minutos Integer a TDateTime), lo único que necesitas es dividir ese entero entre la constante MinsPerDay. ¿Cómo lo haces actualmente?
Código Delphi [-]
Uses
  DateUtils;

procedure TForm1.Button1Click(Sender: TObject);
Var
  I1, I2 :Integer;
begin
  I1 := MinuteOfTheDay (Time);  // Hora actual
  I2 := MinuteOfTheDay (0.5);  // Mediodía (720 minutos)
  ShowMessage (IntToStr (I1));
  ShowMessage (IntToStr (I2));
  ShowMessage (TimeToStr (I1 / MinsPerDay));
  ShowMessage (TimeToStr (I2 / MinsPerDay));
end;

Cita:
Empezado por tiammat Ver Mensaje
Me he visto en muchos problemas para calcular horas/fechas, sumar la hora a una fecha [...]
¿Podrías detallar tales problemas y poner alguna muestra del código fuente de la aplicación donde se presentan esas dificultades? Si, por ejemplo, deseas sumar una cantidad de minutos Integer a una fecha TDateTime, sólo tienes que usar la función nativa IncMinute:
Código Delphi [-]
Uses
  DateUtils;

procedure TForm1.Button2Click(Sender: TObject);
Var
  FH :TDateTime;
  I :Integer;
begin
  I := 720;  // Mediodía

  // Sumamos a la fecha actual 720 minutos para obtener el mediodía de hoy
  FH := IncMinute (Date, I);
  ShowMessage (DateTimeToStr (FH));
end;

Cita:
Empezado por tiammat Ver Mensaje
Espero haber sido claro, y si no lo fuí, avísame y te confundo más...
Más confusión, por favor. Hasta que lleguemos al meollo del asunto y determinemos qué convendría agregar a GHF. Si lo anterior no satisface del todo tus necesidades para manejo de fechas y horas, permíteme entender estas a fondo, no escatimes en texto y código para explicarlas.

Gracias, seguimos por aquí.
Responder Con Cita
 



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
Avanzando con GH Freebrary Al González [GH Freebrary] 13 23-03-2013 07:08:03
Introducción a GH Freebrary Al González [GH Freebrary] 0 18-03-2013 10:11:54
Nueva GH Freebrary (open source) "beta" Al González [GH Freebrary] 23 17-02-2013 01:20:40
Función para fechas Alexandro Tablas planas 4 16-10-2008 21:24:37
Función para strings Jesús Pena Varios 4 26-04-2007 01:48:33


La franja horaria es GMT +2. Ahora son las 22:02:03.


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