Equipe de desenvolvedores do Windows twitta um erro de programação
4 de janeiro de 2022
Credito da imagem: Davor Pihač
A equipe do Windows Developer queria celebrar o Ano Novo twittando algum código de software para seus seguidores. Infelizmente, o código não funciona. Sem contar a natureza incrivelmente básica do código.
Não quero gastar muito tempo nisso, mas é meio engraçado!
Na segunda-feira, a conta oficial do Windows Developer no Twitter tuitou o seguinte:
Código de execução: Feliz Ano Novo
if (DateTime.Now.ToString() == "01/01/2022 00:00:00")
{
Console.WriteLine("Happy New Year!");
}
else
{
Console.WriteLine("It\'s still 2021...");
}
Isso é um código de console C#, se você não é familiar. (E é meio estranho que o Windows Developer twittasse um código de console, mas tanto faz.)
Mesmo um não programador deve ser capaz de dizer o que o código está tentando fazer: Se você executar este aplicativo exatamente a meia-noite na véspera de Ano Novo, você receberá uma mensagem "Feliz Ano Novo!". Mas se você executá-lo em qualquer outro momento, ele vai te dizer que ainda é 2021.
Então, qual é o problema? Como se vê, há todos os tipos de problemas com este código. Mas os dois maiores e mais óbvios erros que vejo são:
1. Você só terá a saudação de Ano Novo exatamente à meia-noite. E eu quero dizer exatamente. Se for um segundo em 2022 ou um segundo antes de 2022, você não terá essa saudação.
2. Se não for exatamente meia-noite, o aplicativo dirá que ainda é 2021. Estamos em 2022 agora, por exemplo, mas este aplicativo vai dizer que estamos em 2021.
Percebendo o erro, a equipe do Windows Developer excluiu o tweet. Mas graças a Davor Pihač que capturou a tela, podemos ver esse belíssimo pedaço de código. Ele também apontou que este código só funcionará nos Estados Unidos por causa da maneira como foi usado o ToString() para fazer a conversão de data/hora. Basicamente, as datas representam um tipo de dados e você nunca deve comparar datas usando strings.
E se você está realmente interessado nesta bagunça, confira a análise excessivamente detalhada de Scott Hanselman dos muitos problemas com este código. Eu ia publicar uma versão corrigida do código, mas Scott já fez isso muito bem.
Enfim, tudo o que podemos fazer agora é rir.
Fonte: Thurrott