Enviado em 22/05/2015 - 19:42h
Olá, eu preciso fazer um código em C que descubra o dia da semana que cairá primeiro de Janeiro. Entretanto, não consigo atingir meu objetivo. Alguém aí pode me ajudar?
#include <stdio.h>
#include <stdlib.h>
int main() {
int ano, y, g, c, x, z, e, n, d, primeirojaneiro, nabril, subtratorabril, ia;
char v[119];
printf("Insira o ano\n");
scanf("%d", &y);
ano = y;
//verifica se o ano é bissexto:
if (ano%100 == 0)
ano = (ano/100);
if (ano%4 == 0){
printf("O ano é bissexto \n");
}
if (ano%4 != 0){
printf("O ano não é bissexto \n");
}
g = ((y%19)+1); //cálculo do número áureo
c = ((y/100)+1); //cálculo do século
x = (((3*c)/4)-12); //fator de correção 1
z = ((((8*c)+5)/25)-5); //fator de correção 2
e = ((((11*g)+20+z)-x)%30); //cálculo do epacta
if((e == 25)&&(g > 11))
e = (e+1);
if(e == 24)
e = (e+1);
n = (44 - e); //lua cheia
if (n < 21)
n = (n + 30);
d = (((5*y)/4)-(x + 10)); //domingo de páscoa
//dia e mês da páscoa:
n = ((n+7) - ((d + n)%7));
if (n > 31)
printf("A páscoa será dia %d de abril\n", n-31);
if (n <= 31)
printf("A páscoa será dia %d de março \n", n);
nabril = n - 31;
subtratorabril = nabril - 30;
ia = 119 - subtratorabril; //119 é número de dias que faltam para 1 de janeiro em 30 de abril
if (ano%4 != 0){
if (n > 31){
for(v[ia]; v[ia]>0; v[ia-7]){
v[ia] = 'd'; //domingo;
v[ia-1] = 's'; //sábado;
v[ia-2] = 'x'; //sexta-feira;
v[ia-3] = 'q'; //quinta-feira;
v[ia-4] = 'u'; //quarta-feira;
v[ia-5] = 't'; //terça-feira;
v[ia-6] = 's'; //segunda-feira;
}
}
}
printf("Primeiro de janeiro será %c \n", v[1]);
return 0;
}
Atenção a quem posta conteúdo de dicas, scripts e tal (6)
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
O mínimo que você precisa saber sobre o terminal (parte 2)
O mínimo que você precisa saber sobre o terminal (parte 1)
Como iniciar uma máquina virtual do VirtualBox automaticamente no boot do LUbuntu 18 LTS
Como deixar as abas do Firefox mais fininhas
Mudar o gerenciador de login (GDM para SDDM)
"Tentando" fazer com que programas rodem no Wayland e no X11
NOTEBOOK SAMSUNG 550 XDA NAO RECONHECE MAIS SSD (0)
Isso ta me cansando [RESOLVIDO] (4)
Inicio de uso do Mint 32bits (19)
Notebook instalado com Linux Debian de fábrica dando problema (3)