Manejo de fechas en delphi – Parte 1
funciones para fechas delphi – TDate – TDateTime – TTime – rutinas de fechas en delphi
Relacionados:
- Definicion de variables para tratar fechas en delph y tipecast (I)
- Funciones para extraer partes de una fecha y codificar fechas (II)
- Funciones para modificar fechas (III) *pronto
- Funciones para comparar fechas (IV) *pronto
- Funciones extras para fechas (V) *pronto
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, año,mes,dia
- incrementar años,meses,dias en una fecha y viceversa
- comparar dos fechas
- saber cuantos dias faltan por una fecha
- validar una fecha
- saber si es un año 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/año
TTime Para almecenar una hora, hora:minuto:segundo
TDateTime Es una combinación de las dos anteriores : dia/mes/año hora:minuto:segundo
Ejemplo:
var MiData: Tdate; //variable de data 00/00/00 MiHora: TTime; //variable de hora 00:00:00 MiFecha: TDateTime; //variable con data y hora 00/00/00 00:00:00
Funciones básicas 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:
MiData := date(); //29/06/08 MiHora := time(); //14:08 MiFecha := now(); //29/06/08 14:08 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:
edit1.text := DateToStr(MiData); edit1.text := TimeToStr(MiHora); 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/Año Hora:Minuto:Segundo,Milisegundo
Ejemplo:
MiData := StrToDate('01/06/2008');
MiHora := StrToTime('10:20:30');
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 funciones TryStrToDate, 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
var MiFecha:Tdatetime;
begin
try
MiFecha := StrToDate('01/06/2008');
except
on EConvertError do
ShowMessage('Fecha incorrecta');
end;
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
var MiFecha:Tdatetime;
cadena:string;
begin
cadena := '31/02/2009';
if (TryStrToDateTime(cadena,mifecha)) then
showmessage('conversion correcta')
else
showmessage('conversion incorrecta');
end;

Hola, este artículo me para parece muy interesante. Precisamente estaba información sobre este tema para una programación que estoy realizando.
Gracias por este aporte tan importante.
Hoyga interesante artículo, pero es “combinación”, no convinacion.
Con respecto a
“var
2.MiData: Tdate; //variable de data 00/00/00″
Se necesita de algun uso para poder utilizar el Tdate, tengo agregado sysutils y Dateutils, pero no me reconoce Tdate, solo Tdatetime.????
Podria ser la version de delphi, jo pruebo los ejemplos con la version 7, el fin del todo depende de las funciones mejor con tdatetime,xd
Seguro que es por la versión, aunque no he visto que usaras esos tipos de datos que mensionas, yo uso la version 2007 del Delphi…
porfa Regamenme un link donde puedo descargar a Borlant Delphi6
si necessitas un compilador de delphi, tienes la disponibilidad de Turbo delphi que es una version del delphi para pequeños proyectos o bien la plataforma Lazarus que no ser como esta, pero bueno si quieres delphi 6 seguramente buscando un poco por el sr internet que lo save todo “taringa delphi 6 medicina” puedes encontrar alguna version evaluable o no
suerte!!!
hey muy bueno el articulo me fue de gran ayuda para un proyecto de la uni y necesitaba saber la hora a la q se ejecutaba mi programa graciass!!!