18 outubro 2006

MS quer transformar bug em standard ..

Quando surgiu o Excel, vinha com um bug na função DATE(), e considerava 1900 como um ano bissexto. As regras dos anos bissextos são algo curiosas; de quatro em quatro anos Fevereiro tem mais um dia. Exceptuam-se os anos múltiplos de 100. E a esta excepção exceptuam-se os anos múltiplos de 400. Segundo a Microsoft o dia 29 de Fevereiro de 1900 existiu. E na proposta de standard do novo formato do MS Office 2007 à ECMA, também deverá "existir", por questões de "compatibilidade" ..Ver, e sorrir, aqui

2 comentários:

João Neves disse...

A piada é que o VBA (Visual Basic for Applications) que também é usado no Excel, não tem esse bug. Repetindo o que já pus noutro lado:

If you want to know where that bug comes from: (from Joel on Software)

"It's a bug in Excel!" I exclaimed.

"Well, not really," said Ed. "We had to do it that way because we need to be able to import Lotus 123 worksheets."

"So, it's a bug in Lotus 123?"

"Yeah, but probably an intentional one. Lotus had to fit in 640K. That's not a lot of memory. If you ignore 1900, you can figure out if a given year is a leap year just by looking to see if the rightmost two bits are zero. That's really fast and easy. The Lotus guys probably figured it didn't matter to be wrong for those two months way in the past. It looks like the Basic guys wanted to be anal about those two months, so they moved the epoch one day back."

Duarte Diogo disse...

well... o problema não é só com o excel :)
http://www.theregister.co.uk/2006/10/20/microsoft_time_bender/