0% encontró este documento útil (0 votos)
124 vistas18 páginas

Guía de TDateTime y Timer en Delphi

Cargado por

carlos
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
124 vistas18 páginas

Guía de TDateTime y Timer en Delphi

Cargado por

carlos
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Tipo TDateTime

Unit System
type TDateTime = type Double;
 Es un número real.
 La parte entera representa los días transcurridos desde
el 30/12/1899
 La parte decimal representa la hora como una fracción
del día.
Ej : 1 hora = 1 / 24
1 min = 1 / (24*60)
Tipo TDateTime
 Ejemplos:
0 30/12/1899 12:00 am
2.75 01/01/1900 6:00 pm
-1.25 29/12/1899 6:00 am
35065 01/01/1996 12:00 am
Dos días después de la Fracción del día:
fecha anterior 18 hs * 1/24 = 0.75
Tipo TDateTime
 ¿Cómo se obtiene el día siguiente de una fecha
dada?
 Ej : 11-04-2005 es el número 38453
DateToStr(StrToDate(’11/04/2005’)+1)
38453
 Conversiones
 StrToDate(’11/04/2005’)  38453
 DateToStr(38454)  ’12/04/2005’
 DecodeDate(38454, anio,mes,dia);
 EncodeDate(2005, 04, 11)  38453
Tipo TDateTime
 Sabiendo que 18 hs 30 min 36 seg  0.77125
 20 hs 30 min 36 seg  ?
 0.77125 + 2/24
 18 hs 37 min 36 seg  0.77125 + 7 / (24*60)

 Conversiones
 StrToTime(’[Link]’)  0.77125
 TimeToStr(0.77125)  ’[Link]’

 Ver DecodeTime y EncodeTime


Formato de conversión
(variables globales)
 ShortDateFormat
 Ej: ShortDateFormat := 'dd/mm/yyyy';

 LongTimeFormat
 Ej : LongTimeFormat := 'hh:mm:ss';
Var Nro : TDateTime;
begin
ShortDateFormat := 'dd/mmm/yyyy';
writeln( DateToStr(38453) );
write('Ingrese un [Link] : ');
readln(Nro);
writeln('Fecha = ', DateTimeToStr(nro));
writeln('Dia Siguiente : ', DateTimeToStr(nro+1));
writeln('Dia anterior : ', DateToStr(nro-1));
LongTimeFormat := 'hh:mm';
writeln('Hora siguiente : ', TimeToStr(nro+1/24));
LongTimeFormat := 'h';
writeln('Hora anterior : ', TimeToStr(nro - 1/24));
end.
Componente Timer

Timer (Paleta System)

Permite ejecutar una acción (indicada


en el envento OnTimer) según una
frecuencia de tiempo especificada.
Componente Timer
 Propiedades
 Enabled
 Arranca y detiene el reloj seteando su valor en
TRUE o FALSE respectivamente.
 Interval
 Indica la frecuencia en milisegundos con la cual
el evento OnTimer se dispara.
 Evento OnTimer
 Escriba aquí el proceso que desea que se
ejecute con la frecuencia indicada.
[Link]
 Se desea desarrollar una aplicación que
muestre la hora actualizada.
Deshabilitar el reloj

Habilitar
el reloj

La propiedad caption de este Label se actualiza


a través de una componente Timer.
[Link]

 Propiedades del Timer seteadas desde el inspector de


objetos:
 Enabled := false; {inicialmente está detenido}

 Interval := 1000; {se activará cada 1000 mseg = 1seg}


Evento OnTimer
 Esto es lo que se hace cada 1000 mseg (valor de la
propiedad interval):
procedure TForm1.Timer1Timer(Sender: TObject);
begin
[Link] := TimeToStr(Time);
end;
Hora actual

Ver en el Help todas las rutinas que


existen para manejo de fecha y hora.
[Link]
 Se desea desarrollar un cronómetro que
registre los segundos transcurridos.

Calcular la hora en función de los segundos que


se deseen visualizar.
[Link] segundos transcurridos
 Agregar a la clase del formulario

private
{ Private declarations }
segundos : longint;
Onclick del botón Comenzar

procedure [Link](Sender: TObject);


begin
segundos := 0;
[Link] := TimeToStr(0);
[Link] := true;
end;
Evento OnTimer

 Cómo mostrar la cantidad de segundos transcurridos?


 Armando el string en forma manual.
 Calcular el número real (valor entre 0 y 1) que represente la
cantidad de segundos transcurridos y utilizar la función
TimeToStr para construir el string.

 Vamos a implementar la segunda opción.


Evento OnTimer
 Ejemplos:
 0 es el inicio del día

 0,5 representa las 12 del mediodía.

 0,75 equivale a las 6 de la tarde. Han transcurrido las ¾

partes del día.


 ¿Cómo calcular el valor para una cantidad de
segundos dada?
Evento OnTimer

 Si el valor 1 corresponde al día completo (24 hs), la


fracción correspondiente a 1 segundo será
1
24 * 60 * 60
 Por lo tanto, si segundos representa la cantidad de
segundos transcurridos, el valor real a utilizar será:
segundos
24 * 60 * 60
Evento OnTimer
procedure TForm1.Timer1Timer(Sender: TObject);
begin
segundos := segundos + 1;
(* construir un número real de la forma
(cant. de segundos) * (fracción del día en segundos) *)
[Link] := TimeToStr(segundos / (24*60*60));
end;

También podría gustarte