Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: garukusanagi23 en 27 Octubre 2018, 18:10 pm



Título: ayuda con programa en C para calcular dia de pascua
Publicado por: garukusanagi23 en 27 Octubre 2018, 18:10 pm
hola
necesito calcular el dia de pascua de los entre 1984 y 2000, tengo el siguiente codigo pero no se como hacer que me imprima las fechas de los años mencionados, podrian ayudarme?
el codigo que tengo es:

#include <stdio.h>
main()
{
  int año, a,b,c,d,e,dia;
  printf ("\n\n\n  *** Programa para Determinar la fecha del Domingo de Pascua ***\n");
  printf ("\n\n\tTeclee el Año: ");
 scanf("%d", &año);
  a=año % 19;
  b=año % 4;
  c=año % 7;
  d=(19*a+24) % 30;
  e=(2*b+4*c+6*d+5) % 7;
  dia= 22+d+e;
          printf("\n\n\tLa Fecha del Domingo de Pascua de %d es: ",año);
                 if (dia<=31)
printf("%d de Marzo ",dia);
                 else
printf("%d de Abril ",dia-31);
        return 0;
}




Título: Re: ayuda con programa en C para calcular dia de pascua
Publicado por: Beginner Web en 27 Octubre 2018, 21:23 pm
Y cuando cae el dia de pascua?  :huh:


Título: Re: ayuda con programa en C para calcular dia de pascua
Publicado por: EdePC en 27 Octubre 2018, 21:40 pm
Saludos,

- Intenta lo siguiente:

Código
  1. #include <stdint.h>
  2.  
  3. int main() {
  4.  
  5.  int año = 2016; // Aquí tu año
  6.  
  7.  int M = 24;
  8.  int N = 5;
  9.  int a, b, c, d, e, dia, mes;
  10.  
  11.  a = año % 19;
  12.  b = año % 4;
  13.  c = año % 7;
  14.  d = (19 * a + M) % 30;
  15.  e = (2 * b + 4 * c + 6 * d + N) % 7;
  16.  
  17.  // Decidir entre los 2 casos:
  18.  if (d + e < 10) {
  19.    dia = d + e + 22;
  20.    mes = 3; // Marzo = 3
  21.  } else {
  22.    dia = d + e - 9;
  23.    mes = 4; // Abril = 4
  24.  }
  25.  
  26.  // Excepciones especiales (según wikipedia)
  27.  if (dia == 26  && mes == 4) {
  28.    dia = 19;
  29.  }
  30.  if (dia == 25 && mes == 4 && d == 28 && e == 6 && a > 10) {
  31.    dia = 18;
  32.  }
  33.  
  34.  // Muestra
  35.  if (mes == 3) {
  36.    printf("Pascua: %d de Marzo del %d", dia, año);
  37.  } else if (mes == 4) {
  38.    printf("Pascua: %d de Abril del %d", dia, año);
  39.  }
  40.  
  41.  return 0;
  42. }
  43.  

-- Día de Pascua y cálculo: https://es.wikipedia.org/wiki/Computus
-- Algoritmos de cálculo en algunos lenguajes: https://es.wikipedia.org/wiki/Anexo:Implementaciones_del_algoritmo_de_c%C3%A1lculo_de_la_fecha_de_Pascua