PDA

Ver la Versión Completa : Trabajar con fechas


molinero1
17-04-2007, 12:01:40
Como puedo coger en una variable de tipo string un dia? me refiero a por ejemplo, lunes, o martes. Muchas gracias.

molinero1
17-04-2007, 12:02:12
Por si no queda claro, intento que sea con un now, o un date, xa saber la fecha de hoy.

kuan-yiu
17-04-2007, 12:29:49
¿Y de dónde lo quieres sacar? ¿Quieres saber el día de la semana de una determinada fecha? ¿Seleccionar a mano el día en un comboBox?...

dec
17-04-2007, 12:33:24
Hola,


ShowMessage( FormatDateTime('dddd', Date) );


Echa un vistazo a la ayuda de la función "FormatDateTime", concretamente a los diferentes "Date-Time format".

gluglu
17-04-2007, 12:33:59
Para mi, esta es la manera más simple y efectiva :

Case DayofTheWeek(IBDataSet1DATE.Value) of
1:Label1.Caption := 'Lunes';
2:Label1.Caption := 'Martes';
3:Label1.Caption := 'Miércoles';
4:Label1.Caption := 'Jueves';
5:Label1.Caption := 'Viernes';
6:Label1.Caption := 'Sábado';
7:Label1.Caption := 'Domingo';
end;


Habrá otras muchas formas de hacerlo, con Array's, con constantes del sistema del propio windows, etc., pero para mí esta es la que más me gusta.

Presta atención que DayofTheWeek toma como 1 el Lunes, en cambio DayofWeek toma como 1 el Domingo.

Saludos ;)

Edito : por supuesto se me olvidaba la función que comenta David, FormatDateTime

Edito de nuevo : Ya me acuerdo por qué no utilizo la función FormatDateTime para obtener el día de la semana : me devuelve la primera letra en minúscula, y (tonterías detallistas mías ...) yo la quiero en mayúsculas. Incluir otra función que me saque el primer carácter, me lo convierta a mayúsculas, y me vuelva a dar el string completo, lo veo más lioso y complicado que la efectividad simple del código que he mencionado.

Lo dicho, cada programador tiene una manera diferente de obtener el mismo resultado.

Mick
17-04-2007, 17:38:29
Yo prefiero usar una funcion de este tipo, porque que es mucho menos costoso computacionalmente usar un array que un case, ademas de que es mucho mas facil de "internacionalizar" si necesitamos los dias de la semana en distintos idiomas:



function WeekDay(Date:TDateTime):string;
const
WeekDays: array [1..7] of string= ('Domingo' , 'Lunes' , 'Martes' , 'Miercoles' , 'Jueves' ,'Viernes' ,'Sabado' );
begin
Result:= WeekDays[DayOfWeek(Date)];
end;


Saludos