Isto e' o codigo em C para identificar anos bissextos:
if ( ano % 4 == 0 && ( ano % 100 != 0 || ano % 400 == 0 ) )
Para quem nao sabe, ou nao se lembra:
% "resto da divisao" (ex: a % b resto da divisao de a por b)
== "igual a"
&& "e booleano"
!= "diferente de"
|| "ou booleano"
: Hoje, já não sei porquê, falei disso com um colega.
: Ele dizia que os anos múltiplos de 4 eram bissextos e eu dizia que era mais
: complicado que isso - os múltiplos de 400 são bissextos (2000, 2400, ...);
: os múltiplos de 100 que não são múltiplos de 400 *não* são bissextos (1800,
: 1900, 2100, ...); os múltiplos de 4 que não sejam múltiplos de 100 são
: bissextos (1988, 1992, 1996, ...) e os outros não são bissextos.
: Ele queria uma outra indicação que eu é que tinha razão e eu disse-lhe
: "Oh pá, vai ver ao Excel" - asneira!!!
: !!! O Excel diz que 1900 é bissexto !!!!
: Continuo convencido que tenho razão, e que o Excel está errado.
: Alguém confirma?
Usando a formula:
1900 % 4 = 0 (Quociente = 475, Resto = 0)
1900 % 100 = 0 (Quociente = 19, Resto = 0)
1900 % 400 = 3 (Quociente = 4, Resto = 3)
if ( 0 == 0 && ( 0 != 0 || 3 == 0 ) )
^^^^^^ ^^^^^^ ^^^^^^
True False False
Logo, 1900 NAO e' ano bissexto. Mais um bug nos programas da Microsoft...
: When all else fails try honesty.
+-----------------------------------------------------------------------+
| Rui Miguel Pires Saraiva [also known as Flip] |
|-----------------------------------------------------------------------|
| Estudante de Engenharia Electrotecnica, Controlo & Robotica |
| Instituto Superior Tecnico, Universidade Tecnica de Lisboa - Portugal |
+-----------------------------------------------------------------------+
"Program testing can be used to show the presence
of bugs, but never to show their absence!"
>Qual é a regra para os anos bissextos?
>
>Hoje, já não sei porquê, falei disso com um colega.
>Ele dizia que os anos múltiplos de 4 eram bissextos e eu dizia que era mais
>complicado que isso - os múltiplos de 400 são bissextos (2000, 2400, ...);
>os múltiplos de 100 que não são múltiplos de 400 *não* são bissextos (1800,
>1900, 2100, ...); os múltiplos de 4 que não sejam múltiplos de 100 são
>bissextos (1988, 1992, 1996, ...) e os outros não são bissextos.
>
>Ele queria uma outra indicação que eu é que tinha razão e eu disse-lhe
> "Oh pá, vai ver ao Excel" - asneira!!!
>
>!!! O Excel diz que 1900 é bissexto !!!!
>Continuo convencido que tenho razão, e que o Excel está errado.
>Alguém confirma?
>--
>When all else fails try honesty.
Viva,
A tua teoria ( x4, x100 e x400 ) esta certa e de acordo com o calendario
Gregoriano ( com inicio em 16?? ), ou seja :
- 1900 -> NAO ( x4 mas x100 )
- 1904 -> SIM ( x4 )
...
- 2000 -> SIM ( x4 e x100 mas x400 )
- 2004 -> SIM ( x4 )
...
- 2100 -> NAO ( x4 mas x100 )
- 2104 -> SIM ( x4 )
...
Quanto ao Excel, so' posso dizer que e' um programa da Micro$oft...
Cumprimentos,
Paulo Caridade
--
=================================================================
= Paulo Caridade == pcar...@mail.telepac.pt == Maia-Portugal =
========== http://www.geocities.com/CapeCanaveral/2170 ==========
=================================================================
inicio em 1582, de facto, em portugal e nos paises catolicos, nos
paises britanicos (ou dominados por...) em 1753???, hmm.. parece-me
que e' isso.
ja agora um pouco de historia rapida-- desde o calendario decretado
por julio cesar e corrigo por ausgusto, que todos os anos multiplos
de 4 eram bissextos, so que esse sistema introduzia dias
a mais no calendario-- a pascoa comecou a ficar fora de epoca,
e em 1582, o papa gregorio nao sei quantos, decretou que
se passasse do dia 2 de Out para 11 de Out.. (acho eu), e introduziu
o esquema que foi referido para a contagem dos anos bissextos,
que mesmo assim ainda da 3 dias de erro em cada 10 mil anos
(ou seja, la para o ano cento e tal mil, o pessoal vai
ter que voltar a saltar no calendario).
Carlos (l38...@beta.ist.utl.pt)