Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Trabajar con fechas (https://www.clubdelphi.com/foros/showthread.php?t=42550)

molinero1 17-04-2007 12:01:40

Trabajar con fechas
 
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,

Código Delphi [-]
  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 :

Código Delphi [-]
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:

Código Delphi [-]

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


La franja horaria es GMT +2. Ahora son las 17:42:15.

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