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
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.