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
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
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.