Foros Club Delphi

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

Paulao 22-11-2010 17:08:50

Duda con Fecha
 
Señores, tengo una duda asi:
DecodeDate(Fecha,Ano,Mes,Dia);
DiaDaSemana := DayOfWeek(Fecha);

DiaDaSemana me resuelta una descripcion del dia, si es Lunes, Viernes, Miercoles y etc, usando una Ordenacion:
1=Domingo
2=Lunes
3=Jueves y etecetera.
Ya Dia del DecodeDate, me resuelta siel dia es:
1,2,3,4,5,6,7,8,9,10,11,12 y atecetera.
Mi duda es, como hago para atribuir o comparar si hoy es dia 22, atribuir a este dia el DiaDaSemana(Lunes) y asi por adelante. Esta es mi duda. Como hacer.

rrf 22-11-2010 17:15:30

La verdad es que no entiendo del todo lo que preguntas.

Sin embargo, a ver si esto te sirve:

Código Delphi [-]
  if 22 = DayOfTheMonth ( now )
     then ....


DayOfTheMonth te devuelve el día del mes de la fecha que está entre paréntesis.

now es una función que te da la fecha y hora del momento en el que es llamada.

Espero que te sirva.

Saludos.

Paulao 22-11-2010 18:00:48

Ejemplo, hoy es 22 de Noviembre y es lunes. Si yo hago
Semana := DayOfWeek(Now) voy a encontrar que Semana = 2(Lunes), ahora como yo hago para que decir 22 es lunes o 2(Semana).

Paulao 22-11-2010 19:07:36

He conseguido asi:
Si estoy fuera del primero dia del mes, pego el primero dia y hago un Encodedate ahora con el primer Dia y despues, voy a la funcion DayOfWeek y veo cual este dia [Domingo..Sabado], y entonces hago mis operaciones. Ahora voy mejorar esta funcion para que si quede mejor, si for posible. Este ejemplo funciona para lo que quiero.
Código Delphi [-]
var
Ano, Mes, Dia,pDia : word;
DiaDaSemana, DiaDoMes : Integer;
begin
  DecodeDate (Data, Ano, Mes, Dia);

  pDia := Dia - Dia + 1;

  Data := EncodeDate(Ano,Mes,pDia);
  DiaDaSemana := DayOfWeek(Data);

  if DiaDaSemana in [1,7] then
    Result := '02' + '/' + IntToStr(Mes)
  else
  if (DiaDaSemana = 2)and(EFeriado(Trunc(now))) then
    Result := '03' + '/' + IntToStr(Mes)
  else
  if (DiaDaSemana = 6)and(EFeriado(Trunc(now))) then
    Result := '04' + '/' + IntToStr(Mes)
  else
    Result := StrZeros(IntToStr(pDia),2) + '/' + IntToStr(Mes);

end;


La franja horaria es GMT +2. Ahora son las 11:17:47.

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