PDA

Ver la Versión Completa : Nombre del dia


chona
22-11-2007, 17:16:22
Hola amigos, alguno sabe de una función (delphi 5) que tome como parámetro una fecha y devuelva como resultado el nombre del dia. Ej.
Func_nombre(22/11/2007)=Jueves
Desde ya muchísimas gracias

jhonny
22-11-2007, 17:31:31
Se de una que te devuelve el numero del dia de la semana...

DayOfTheWeek

dec
22-11-2007, 17:34:51
Hola,

No recuerdo que exista una función así, y, de existir, retornaría los días "en inglés". Pero, no parece demasiado complicado preparar una función que tal vez te sirviera:


function GetDayName(dateTime: TDateTime) : string;
begin
case DayOfWeek(dateTime) of
1: result := 'Domingo';
2: result := 'Lunes';
3: result := 'Martes';
4: result := 'Miércoles';
5: result := 'Jueves';
6: result := 'Viernes';
7: result := 'Sábado';
end;
end;


Ejemplo de llamada a la función:


begin
// Muestra el nombre del día actual
ShowMessage( GetDayName(Now()) );
end;

jhonny
22-11-2007, 17:37:54
Podemos lograr lo que quieres asi:


function DiaDeLaSemana(Fecha :TDateTime) :String;
const
Dias :array[1..7] of string = ('Lunes', 'Martes', 'Miercoles', 'Jueves', 'Viernes', 'Sabado', 'Domingo');
begin
Result := Dias[DayOfTheWeek(Fecha)];
end;


Nota: Recuerda que DayOfTheWeek en Delphi5 esta en la unidad DateUtil y a partir de Delphi6 en la unidad DateUtils ;).

Neftali [Germán.Estévez]
22-11-2007, 17:46:14
También esta otra:


Str := FormatDateTime('dddd', Now());
MessageDlg('Día: ' + Str, mtInformation, [mbOK], 0);

jhonny
22-11-2007, 17:47:37
Allí tienes tres maneras de hacer lo que quieres :). No habia visto que dec y Neftali tambien habian respondido :).

ixMike
24-11-2007, 15:20:10
Podemos lograr lo que quieres asi:

Código Delphi [-] (http://www.clubdelphi.com/foros/#)function DiaDeLaSemana(Fecha :TDateTime) :String;
const Dias :array[1..7] of string = ('Lunes', 'Martes', 'Miercoles', 'Jueves', 'Viernes', 'Sabado', 'Domingo');
begin Result := Dias[DayOfTheWeek(Fecha)]; end;


Nota: Recuerda que DayOfTheWeek en Delphi5 esta en la unidad DateUtil y a partir de Delphi6 en la unidad DateUtils ;).


Si mal no recuerdo (o quizás también dependa de la versión de Delphi) la funmción DayOfTheWeek devuelve un número de 0 a 6. Entonces se tendría que cambiar la matriz a Dias: array[0..6] of string...


Saludos.

jhonny
24-11-2007, 16:38:32
Si mal no recuerdo (o quizás también dependa de la versión de Delphi) la funmción DayOfTheWeek devuelve un número de 0 a 6. Entonces se tendría que cambiar la matriz a Dias: array[0..6] of string...


Saludos.

Bueno, el ejemplo que coloque anteriormente lo probe antes de publicarlo en su momento y me devolvio bien los dias, sin embargo a raiz de tu sugerencia busque en la ayuda y claramente dice que la cosa va de 1 a 7...

Description

Call DayOfTheWeek to obtain the day of the week represented by a specified TDateTime value. DayOfTheWeek returns a value between 1 and 7, where 1 indicates Monday and 7 indicates Sunday.

Incluso la función DayOfWeek que propone dec, tambien va de 1 a 7

DayOfWeek is a read-only Integer property that contains the Day of the Week for the Indy timestamp. DayOfWeek will contain a value in the range 1..7.


Nota: La diferencia entre las dos funciones es que DayOfWeek comienza en Domingo y DayOfTheWeek Comienza en Lunes.

cHackAll
24-11-2007, 16:55:07
Ah, pues creo que nos estamos haciendo demasiado problema... de paso tengo mis dudas con esas funciones en versiones inferiores de d6;

procedure TForm1.FormCreate(Sender: TObject);
const Dias: array [0..6] of PChar = ('Sábado', 'Domingo', 'Lunes', 'Martes', 'Miercoles', 'Jueves', 'Viernes');
begin
Caption := Dias[Trunc(Now) mod 7];
end;

Funcionaría hasta en d1 o 2 ??? :rolleyes:

Saludos

Drahcir
10-12-2007, 12:42:33
Si la fecha la extráes de una consulta SQL lo mejor es traer el nombre del día desde la misma consulta con un:

Select
To_Char(Fecha,'Day') Dia_Semana