Ver Mensaje Individual
  #1  
Antiguo 27-02-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.195
Reputación: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Calendario de Semana Santa

El problema de las fiestas anuales para ver los dias laborables, no siempre es fácil. Un tema especialmente difícil son las fiestas de la Semana Santa. Aquí dejo la forma de calcularlas:
Código:
TDate
GetPascua(int year)
{
   // Limites de la Semana Santa 22 de marzo hasta 25 de abril
   // Solo desde 1900 hasta el año 2100 las cifras 24 y 5 son cte y válidas
   int a = year % 19;
   int b = year % 4;
   int c = year % 7;
   int A = (19*a + 24) % 30;
   int B = (2*b  + 4*c + 6*A + 5)%7;
 
   TDate Date = EncodeDate(year, 3, 1);
   return Date + A + B + 22 -1;
}
y para los amantes del delphi:
Código Delphi [-]
function GetPascua(year: Integer):TDate;
var
   a, b, c, AA, BB : Integer;
begin
   // Limites de la Semana Santa 22 de marzo hasta 25 de abril
   // Solo desde 1900 hasta el año 2100 las cifras 24 y 5 son cte y válidas
   a := year mod 19;
   b := year mod 4;
   c := year mod 7;
   AA := (19*a + 24) mod 30;
   BB := (2*b  + 4*c + 6*AA + 5) mod 7;
 
   Result := EncodeDate(year, 3, 1) + AA + BB + 22 -1;
end;
Este es el Domingo de Pascua. El jueves Santo será, Pascua-3 y el Viernes Santo, Pascua-2.

Saludos.
Responder Con Cita