122 - CALCULANDO O DIA DA SEMANA DE UMA DATA DE 2015  
Autor: Aloisio Teixeira | Publicado: 2015-01-11T20:04:00-02:00


Sem usar um calendário padrão, existem tabelas que informam qual o dia da semana de uma data qualquer de qualquer ano, mas que, em geral, são algo complexas. O ideal para compreender a ideia central dessas ferramentas é considerar apenas o ano corrente e construir um algoritmo simples para descobrir qual o dia da semana de uma data de&nbsp; , por exemplo. Com memorização e treinamento, é possível o leitor calcular, mentalmente, qualquer dia da semana de um data de , impressionando assim um amigo, referente a data de aniversário do mesmo ou outra data qualquer). 

O algoritmo a seguir será justificado logo após o exemplo de sua utilização. Para calcular qual dia da semana é a data de  de setembro de , consulta-se duas tabelas, da seguinte forma.






1) Calcula-se o resto  da divisão do dia do mês, no caso , por  . Temos então .

2) Soma-se  com o código do mês da primeira tabela, ou seja,  ( SET ). Então fica . Se o resultado for maior que  , subtrai-se . Assim, 

3) Por fim, com este&nbsp; último resultado (  ), consultamos a segunda tabela e concluímos que o dia  de setembro de  recairá numa quinta-feira.

Cada ano terá sua tabela específica de código do dia da semana em sintonia com os primeiros sete dias do ano específico. Para os anos bissextos, a tabela código do mês é





JUSTIFICATIVA&nbsp; 

A aritmética modular, particularmente a de base , é a pedra angular em questões deste tipo. Um inteiro positivo , quando dividido por , deixa um resto , tal que, .&nbsp; Dizemos então que  é equivalente a este resto , módulo . Simbolicamente,&nbsp; . Então qualquer inteiro positivo tem uma representação  módulo , que nada mais é do que o resto da divisão deste inteiro positivo por . &nbsp; Exemplo, , tento em vista que . 

Para cada dia da semana, podemos atribuir um número , conforme os  primeiros dias do mês de , iniciando com Quinta , porque foi o dia 1º. Procedendo desta forma, temos Sexta&nbsp; , Sábado , &nbsp; Domingo  , Segunda  , Terça , e&nbsp; Quarta .&nbsp; Porque Quarta  e não Quarta  ? A resposta é que&nbsp;  e vamos sempre trabalhar com essas equivalências. Ora, cada dia da semana se repete de  em  dias. Assim, para descobrir que dia da semana será, por exemplo, dia  de janeiro de , basta verificar a equivalência  e sabemos que  corresponde a um sábado. Porém, para dia  de fevereiro, temos que levar em conta que é o dia de número  do ano. Assim, como , temos que o primeiro dia de fevereiro recaíra no domingo, em harmonia com o cálculo anterior. Da mesma forma o dia do ano de número  será numa Terça , porque .

Para entender o código do mês para ano não-bissexto, considere&nbsp; a data do exemplo,  de setembro de . Ela corresponde ao número de dias


&nbsp;&nbsp; 
Mas, na soma dos dias dos meses de janeiro a agosto, temos


&nbsp;



Então  é o código do mês de setembro para o ano não bissexto. Somado este resultado pela equivalência módulo  do dia do mês , , temos , onde  é o código para quinta-feira na segunda tabela.



Conclusão: o código do mês  da primeira tabela é a equivalência módulo  do somatório de todos os dias dos meses anteriores a . E como não se considera nenhum mês do ano anterior, tem-se que o código de janeiro é .



Mesma análise procede-se para os anos bissextos, onde, no somatório dos dias dos meses, considera-se o mês de fevereiro com  dias. Para saber se determinado ano é bissexto, divide-se por . Se essa operação resultar exata, o ano é bissexto. Não é o caso de . 



COMO CALCULAR OS SETES PRIMEIROS DIAS DA SEMANA DE 2016.&nbsp;



Sabemos que a segunda tabela, a de código da semana, serve apenas para . Mas podemos construir uma para . Basta saber o dia da semana de  de janeiro de , calculando o dia da semana de  de dezembro de , usando as tabelas de . Procedendo com este cálculo ( fica como exercício ) saberemos que  de dezembro de  será uma quinta-feira. Logo,  de janeiro de  será uma sexta, que atribuiremos o código  para a tabela semanal de  que fica