You are on page 1of 3

Manejo de fechas en delphi Parte 1

El siguiente articulo vamos a ver como manejar fechas y horas en delphi las funciones que veremos pertanecen a la unidad SysUtils y la mayoria en DateUtils que a partir de delphi 6 estan con nosotros, con ellas podremos resolver dilemas como: extraer parte de la fecha, ao,mes,dia incrementar aos,meses,dias en una fecha y viceversa comparar dos fechas saber cuantos dias faltan por una fecha validar una fecha saber si es un ao bisiesto dia de la semana de una fecha

Definicion de variables de tipo fecha


Para manejar fechas en delphi necessitamos definir las variables con el tipo adecuado para fechas, para ello tenemos en disposicion de tres tipos TDate TTime y TDateTime TDate Para almecenar una fecha dia/mes/ao TTime Para almecenar una hora, hora:minuto:segundo TDateTime Es una combinacin de las dos anteriores : dia/mes/ao hora:minuto:segundo Ejemplo: 1.var 2.MiData: Tdate; //variable de data 00/00/00 3.MiHora: TTime; //variable de hora 00:00:00 4.MiFecha: TDateTime; //variable con data y hora 00/00/00 00:00:00

Funciones bsicas para obtener fechas


unidad: SysUtils date() : devuelve la data actual time() GetTime() : devuelve la hora actual now() : devuelve la data y hora actual Ojo si utilizamos variables de tipo TDateTime y usamos time() o GetTime() la data por defecto es 30/12/1899 Ejemplo: 1.MiData := date(); //29/06/08 2.MiHora := time(); //14:08 3.MiFecha := now(); //29/06/08 14:08 4.MiFecha := GetTime(); // 30/12/1899 14:08

Funciones de salida para fechas OUTPUT


Para mostrar una variable de contenedor fecha en pantalla, en un editbox,label,listbox etc.. tenemos que pasar la fecha en formato cadena string, para ello usaremos la funciones convertidoras de tipos casting apropiadas unidad: SysUtils DateToStr :Convierte de Data a texto

TimeToStr :Convierte de Hora a texto DateTimeToStr :Convierte de Data y Hora a texto Ejemplo: 1.edit1.text := DateToStr(MiData); 2.edit1.text := TimeToStr(MiHora); 3.edit1.text := DateTimeToStr(MiFecha);

Funciones de entrada para fechas INPUT


Podemos utilizar (StrToDate STrToTime StrToDateTime) para que el usuario puede agregar datas manualmente o bien para predeterminar la fecha o hora unidad: SysUtils StrToDate :Convierte de texto a Data STrToTime :Convierte de texto a Hora StrToDateTime :Convierte de texto a Data y Hora Para componer una fecha en delphi tenemos el siguiente formato Dia/Mes/Ao Hora:Minuto:Segundo,Milisegundo Ejemplo: 1.MiData := StrToDate('01/06/2008'); 2.MiHora := StrToTime('10:20:30'); 3.MiFecha := StrToDateTime('01/06/2008 10:20:30,232'); Nota: si se pasa una fecha o tiempo incorrecto salta una excepcion de tipo EConvertError

Funciones typecast validadoras de fechas


Podemos usar el manejo de excepciones (try, except, finally) o bien usar la funcionesTryStrToDate, TryStrToTime, TryStrToDateTime que veremos despues cuando pasamos una fecha o tiempo incorrecto delphi salta con una excepcion de tipo EConvertError la podemos capturar con on EConvertError Ejemplo 01.var MiFecha:Tdatetime; 02.begin 03.try 04.MiFecha := StrToDate('01/06/2008'); 05.except 06.on EConvertError do 07.ShowMessage('Fecha incorrecta'); 08.end; 09.end; Funciones TryStrToDate, TryStrToTime y TryStrToDateTime, todas se llaman de la siguiente manera nombrefuncion(donde_guardar,fecha_a_pasar) nos devuelve con un boleano si ha sido correcta o no la conversion Ejemplo 01.var MiFecha:Tdatetime; 02.cadena:string; 03.begin 04.cadena := '31/02/2009'; 05.if (TryStrToDateTime(cadena,mifecha)) then 06.showmessage('conversion correcta') 07.else 08.showmessage('conversion incorrecta'); 09.end;

You might also like