[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Dia da semana
>From: Augusto Morgado <morgado@centroin.com.br>
>Reply-To: obm-l@mat.puc-rio.br
>To: obm-l@mat.puc-rio.br
>Subject: Re: Dia da semana
>Date: Mon, 21 Aug 2000 10:38:47 -0300
>
>
>
>Ecass Dodebel wrote:
> >
> > >From: "Wellington Ribeiro de Assis" <wassis@epq.ime.eb.br>
> > >Reply-To: obm-l@mat.puc-rio.br
> > >To: "discusspio de problemas" <obm-rj@mat.puc-rio.br>
> > >Subject: Dia da semana
> > >Date: Fri, 18 Aug 2000 23:59:17 -2:00
> > >
> > >Prezados amigos
> > >
> > >Alguem sabe dizer como eh o algoritmo usado para se descobrir que dia
> > >da semana cai uma determinada data de um ano qualquer?
> > >
> > >Bons estudos e abraco a todos,
> > >Wellington
> >
> > Olá,
> >
> > eu tenho uma idéia. Conseguiremos descobrir em que dia da semana cai o
>dia D
> > do mês M do ano A, se soubermos que dia da semana foi 1/1/1 (por
>exemplo), e
> > quantos dias já se passaram até o dia D/M/A desde 1/1/1, e fazer o resto
>da
> > divisão por 7, o resto 0 nos dirá que D/M/A é o mesmo dia da semana de
> > 1/1/1, o resto 1 que D/M/A é um dia depois, e assim por diante. Vou
> > apresentar uma possível solução. Defino o seguinte:
> > - DA(A) = número de dias dos anos entre o ano 1 e A-1 (inclusive), para
>A>0,
> > não vou considerar os casos com o ano negativo.
> > - DM(M) = número de dias dos meses entre 1 e M-1, do ano A.
> > - DD(D) = número de dias anteriores a D, no mês M do ano A.
> > O resto procurado é o da divisão de
>ND(D/M/A)=DA(A)+DM(M)+DD(D)-ND(1/1/1)
> > por 7.
> > Eu não vou falar muitos detalhes (para não ficar muito chato). Tomando a
> > função [x], menor inteiro, que diz o natural N, tal que N<=x<N+1, daí,
> > [x]=N, temos
> > DA(A) = 365(A-2) + [(A-1)/4], se A>0
> > DM(M) = 31([M/2] + [M/9] - [M/10] + [M/11] - [M/12])
> > + 30([M/5] + [M/7] + [M/12])
> > + 28([M/3] - [M/6] - [M/9] - [M/12])
> > + [1 - A/4 + [A/4]]([M/3] - [M/6] - [M/9] - [M/12])
> > DD(D) = D
> > Agora podemos fazer algumas simplicações módulo 7.
> >
> > ND(D/M/A) =
> >
>(A-2)+[(A-1)/4]+3([M/2]+[M/9]-[M/10]+[M/11]-[M/12])+2([M/5]+[M/7]+[M/12])+[1-A/4+[A/4]]([M/3]-[M/6]-[M/9]-[M/12])+D
> > (mod 7)
> >
> > Hoje, ND(20/8/2000) = 0 (mod 7), domingo.
> > Primeiro dia da era cristã, ND(1/1/1) = 0 (mod 7), domingo.
> > Proclamação da Independência, ND(7/9/1922) = 5 (mod 7), sexta-feira.
> > Proclamação da República, ND(15/11/1889) = 4 (mod 7), quinta-feira.
> >
> > Eu tenho quase certeza de que para anos A negativos, uma expressão
>válida é
> > a seguinte:
> >
> > ND(D/M/A) =
> >
>A-[(|A|+3)/4]+3([M/2]+[M/9]-[M/10]+[M/11]-[M/12])+2([M/5]+[M/7]+[M/12])+[1-(A+1)/4+[(A+1)/4]]([M/3]-[M/6]-[M/9]-[M/12])+D
> > (mod 7),
> >
> > ela deixa os restos similares aos da expressão com o A>0, ou seja, 0
> > continua sendo domingo, e assim por diante.
> >
> > Eu não uni os dois casos (A>0 e A<0) numa expressão só, por que não
>existe o
> > ano 0, e isso complicou tudo para mim, talvez eu até conseguisse, mas
> > ficaria algo tão comprido que prefiro nem tentar.
> >
> > Obrigado!
> >
> > Eduardo Casagrande Stabel.
> >
>Eduardo:
>Nao examinei com cuidado o que voce fez. Mas a primeira impressao eh que
>nao esta correto porque me parece que voce esta considerando que todos
>os anos multiplos de 4 sejam bissextos, o que nao eh verdade. Em suma,
>parece que a matematica eh boa mas os anos bissextos infelizmente nao
>sao os multiplos de 4.
>
>Anos bissextos sao todos os que sao multiplos de 4 sem ser de 100; os
>multiplos de 100 so sao bissextos se forem multiplos de 400.
>Morgado
Olá prof. Morgado,
eu não sabia desse dado sobre os anos bissextos, pensei, como você bem
citou, que os múltiplos de 4 eram bissextos. Bom, com o dado que você passa,
acho que não fico muito difícil de corrigir a minha fórmula, mas vou pensar
melhor. Tenho uma dúvida: e quanto aos anos AC? como ficam os bissextos?
Obrigado pela correção!
Eduardo Casagrande Stabel.
________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com