Hoje em meio a um assunto de nerd's um amigo soltou a Brava :

2012 não e bissexto,PUTAQUEPARIU fiquei puto e resolvi postar como calcular ano bissexto,aproveitei para postar uns código.

s anos divisíveis por 4 são bissextos, porém cada 400 anos devem se eliminar 3 bissextos. Por isso, não são bissextos os que se dividem por 100, menos os que se dividem por 400, que sim são bissextos.

Com outras palavras, são bissextos todos os anos divisíveis por 4, excluindo os que sejam divisíveis por 100, porém não os que sejam divisíveis por 400.

Em pseudocódigo se calcularia assim:

SI ((ano divisível por 4) Y ((ano não divisível por 100) O (ano divisível por 400))) ENTÃO
é bissexto
SINO
não é bissexto

Em ASP, o código seria o seguinte:

if ((ano mod 4)=0) and ((ano mod 100)<>0 or (ano mod 400)=0) then
...

Em Javascript e em linguagens de sintaxe similar como C, Java ou PHP:

if ((ano % 4 == 0) && ((ano % 100 != 0) || (ano % 400 == 0))