No último artigo , falei sobre a padronização de formatos de data. Em uma nota relacionada, descobri que muitas pessoas não sabem como calcular os anos bissextos. É trivial para obtê-lo direito, mas mesmo programadores experientes estragar tudo. Então, como saber se um ano é ano bissexto ou não?
Considere o AAAA ano. As regras são as seguintes:
- Se AAAA é divisível por 400, é um ano bissexto
- Se AAAA é divisível por 100, não é um ano bissexto
- Se YYYY é divisível por 4, é um ano bissexto
Isso pode ser expresso em C, C + +, Javascript ou Java de código como:
isLeap = ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)
Algumas pessoas não sabem sobre a regra de 100 e 400. Pergunte aos seus colegas para saber quantos deles conhecem essas regras e dizer-lhes as regras para que os programas que escrevem vai funcionar mesmo depois de 4, 100 ou 400 anos. Como sabemos, o software legado maintainig é uma grande dor de cabeça para empresas de software. Há uma possibilidade que o software que você escreve pode sobreviver 400 anos.


Você pode querer corrigir isto. A última vez que verifiquei, uma declaração como:
4% no ano;
irá retornar 0, 1, 2 ou 3. Isto significa que três em cada quatro anos é um leapyear em seu código.
O que você provavelmente quis dizer foi:
isLeap = (ano% 4 == 0) ...
o "100%" e '% 400' expressões são incorrectas, da mesma forma também.
Graças.
Lyman
"Há uma chance de que o software que você escreve pode sobreviver 400 anos. ...". Sim, é verdade ... .. mas wtf que eu me importo? sua 400!! anos mais tarde!!
Lyman Graças. Corrigida.
WhatWhat,
O que nós apreciamos agora em nossa vida são as escolhas feitas por pessoas de centenas de anos atrás.