Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Trucos (https://www.clubdelphi.com/foros/forumdisplay.php?f=52)
-   -   Calendario de Semana Santa (https://www.clubdelphi.com/foros/showthread.php?t=80898)

escafandra 27-02-2009 00:59:58

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.

roman 06-04-2010 17:53:09

Este truco está muy bueno, no lo había visto. De hecho, nunca había visto nada semejante.

neuronic 08-01-2011 14:35:32

esta muy bien, gràcias

nemesio 12-04-2011 18:03:41

Mira el truco 347 Roman, está desde el 2006. Saludos


La franja horaria es GMT +2. Ahora son las 10:06:55.

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