Cálculo do dia da semana
Publicado por Reginaldo de Matias 07/05/2007
[ Hits: 27.957 ]
Homepage: http://mundodacomputacaointegral.blogspot.com/
No presente script, o usuário digita uma data qualquer, então o script mostra o dia da semana correspondente.
/*O presente programa o usuário digita uma data qualquer e mostra o dia da semana correspondente.
Autor: Reginaldo de Matias - Ciência da Computação - UDESC*/
#include <stdio.h>
#include <stdlib.h>
void calculo_dia_da_semana(int dia,int mes,int ano);
int main()
{
int d,m,a,teste;
do{
teste = 0;
printf("Calculo do dia da semana\n");
printf("dia: ");
scanf("%i",&d);
printf("mes: ");
scanf("%i",&m);
printf("ano: ");
scanf("%i",&a);
if((d < 1 || d > 31) || (m < 1 || m > 12) || (a < 1583))
teste = 1;
if((m == 2) && (d + m) > 31) /*fevereiro tem no máximo 29 dias*/
{
if((m == 2) && (d == 29)) /*verifica se não é ano bissexto*/
{
if(!(a% 4 == 0) && (a % 100 != 0) || (a % 400 == 0))
teste = 1;
}
}
if(teste)
{
printf("\n!!!ERRO!!! A data (%i/%i/%i) nao existe!!!\n",d,m,a);
}
}while(teste);
//depois do teste de erro
calculo_dia_da_semana(d,m,a);
system("Pause");
}
void calculo_dia_da_semana(int dia,int mes,int ano)
{
switch (mes)
{
case 1: break;
case 2: dia += 31; break;
case 3: dia += 59; break;
case 4: dia += 90; break;
case 5: dia += 120; break;
case 6: dia += 151; break;
case 7: dia += 181; break;
case 8: dia += 212; break;
case 9: dia += 243; break;
case 10: dia += 273; break;
case 11: dia += 304; break;
case 12: dia += 334; break;
}
/* Se o ano é um ano-bisexto E
Se o mes de fevereiro ja passou entao acrescente um dia ao deslocamento*/
if ( ((ano%4)==0) && ( ((ano%100)!=0) || ((ano%400)==0) ) && (mes > 2))
dia += 1;
dia += -1 + (ano-1)*365 + (ano-1)/4 -(ano-1)/100 +(ano-1)/400 ;
switch (dia % 7)
{
case 0: printf("Segunda-feira\n"); break;
case 1: printf("Terca-feira\n"); break;
case 2: printf("Quarta-feira\n"); break;
case 3: printf("Quinta-feira\n"); break;
case 4: printf("Sexta-feira\n"); break;
case 5: printf("Sabado.\n"); break;
case 6: printf("Domingo.\n"); break;
}
}
Função que converte números decimais em binários
Binário para Decimal, Hexa, Char
Nenhum comentário foi encontrado.
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Gentoo binário em 2026: UEFI, LUKS, Btrfs e Systemd
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
O que houve com slackware ??? (12)
Alterar conteúdo de dica [RESOLVIDO] (3)
Vou destruir sua infância:) (5)









