Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
ola, estou com um problema, precisa saber como calcular que dia da semana caiu dia 01/01/Y, onde y é o ano passado pelo usuario do programa.
Preciso saber disso, apartir do dia da pascoa, onde tenho o codigo já feito.
Tambem tenho que montar um calendario mas nao faço a minima ideia de como calcular quando caiu tal dia da semana.
obrigado.
codigo já feito até agora:
#include <stdio.h>
int main(){
int i, bissexto, ano, y, g, c, x, z, e, n, d, dia, DiaPascoaAbril, DiaPascoaMarco, DiasFevereiro, DiasMes, mes, meses, DiaSemana;
y=0;
g=0;
c=0;
x=0;
z=0;
e=0;
n=0;
d=0;
dia=0;
abril = 0;
// char janeiro, fevereiro, marco, abril, maio, junho, julho, agosto, setembro, outubro, novembro, dezembro;
//ano bissexto = 1, nao bissexto = 0;
bissexto = 0;
//recebe o ano
scanf("%d", &y);
//Calcula se o ano é bissexto
if((y%100) == 0){
bissexto = 0;
}else if((y%4) == 0){
bissexto = 1;
}
//Fim ano bissexto
/*----------Inicio calculo da pascoa------------*/
//calcula numero aureo
g = (y % 19)+1;
//seculo
c = (y/100)+1;
//calcula as correcoes
x = ((3*c)/4)-12;
z = (((8*c)+5)/25)-5;
//epacta
e = ((11*g)+ 20 + z - x)%30;
if((e == 25 && g > 11) || (e == 24)){
e++;
}
//calcular lua cheia
n = (44-e);
n = (n<21) ? n = n+30 : n;
//calcula domingo
d = ((5*y)/4)-(x+10);
//calcula o mes
n = (n+7)-((d+n)%7);
DiaPascoaAbril = (n>31)? (n-31) : n;
DiaPascoaMarco = n;
mes = (n > 31) ? 4 : 3;
/* if(n>31){
printf("Pascoa: %d de abril de %d", (n-31), y);
}else{
printf("Pascoa: %d de marco de %d", n, y);
}*/
/*--------------Fim Calculo Da Pascoa ----------------*/
DiasFevereiro = (bissexto == 1) ? 29 : 28;
switch(mes){
case 1:
DiasMes = 31;
break;
case 2:
DiasMes = DiasFevereiro;
break;
case 3:
DiasMes = 31;
break;
case 4:
DiasMes = 30;
break;
case 5:
DiasMes = 31;
break;
case 6:
DiasMes = 30;
break;
case 7:
DiasMes = 31;
break;
case 8;
DiasMes = 31;
break;
case 9:
DiasMes = 30;
break;
case 10:
DiasMes = 31;
break;
case 11:
DiasMes = 30;
break;
case 12:
DiasMes = 31;
break;
}
system("pause");
return 0;
}Carregando comentários...