Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Saber donde cae la Semana Santa (https://www.clubdelphi.com/foros/showthread.php?t=30413)

Thales 05-04-2006 18:59:43

Saber donde cae la Semana Santa
 
No pretendo hacer ninguna consulta, sino más bien comentar una curiosidad con la que me he topado y que viene a cuento dadas las fechas en las que nos encontramos.
Resulta que existen algoritmos para conocer con exactitud la fecha en la que caerá la Pascua de Resurrección (domingo de resurrección).
Por si no conocéis la existencia de estos algoritmos os pongo aquí una función que os puede ser útil (quien sabe) y que utiliza el algoritmo de Butcher.

Código Delphi [-]
function Pascua(Anio: word): TDateTime;
var
  a, b, c, d, e, f, g, h, i, k, l, m, n: word;
  Mes, Dia: word;
begin
  { Devuelve la fecha del año en la que cae la Pascua de Resurrección.
    Se utiliza para ello el Algoritmo de Butcher }
  a := anio mod 19;
  b := anio div 100;
  c := anio mod 100;
  d := b div 4;
  e := b mod 4;
  f := (b + 8) div 25;
  g := (b - f + 1) div 3;
  h := (19 * a + b - d - g + 15) mod 30;
  i := c div 4;
  k := c mod 4;
  l := (32 + 2 * e + 2 * I - h - k) mod 7;
  m := (a + 11 * h - 22 * l) div 451;
  n := h + l - 7 * m + 114;
  Mes := n div 31;
  Dia := 1 + n mod 31;

  Result := EncodeDate(Anio, Mes, Dia);
end;

Un saludo

marcoszorrilla 05-04-2006 19:54:31

Pues he hecho varias pruebas y funciona correctamente, muchas gracias por la aportación.

Un Saludo.

ContraVeneno 05-04-2006 21:19:33

pues a mi siempre me da risa las soluciones que nos tenemos que crear cuando no podemos escribir la ñ en el código. Especialmente con las fechas.

Thales 05-04-2006 21:50:59

Siempre existe la alternativa de poner Year en lugar de anio y el resto de nombres de variables en inglés, pues total estamos muy acostumbrados a usar la VCL que lo hace así por motivos obvios

Un saludo

Emilio 05-04-2006 21:53:27

oño, que bueno, siempre me he hecho un lío para saber cuando cae semana santa y ahora lo tenemos en una función, genial. Gracias por la aportación.

petite 25-06-2014 21:46:33

Hola muchas gracias por el algoritmo pero, perdon por mi ignorancia pero noc como mandar llamar el resultado de la funcion :( me podrian explicar como por favor :)

Ñuño Martínez 01-07-2014 13:04:28

Pues pasándole el año...

Código Delphi [-]
VAR
  Fecha: TDateTime;
...
  Fecha := Pascua (2014);
...


La franja horaria es GMT +2. Ahora son las 15:04:42.

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