Seu programa pode fazer o que você quiser. A única condição é que o desempenho seja o esperado se a data for anterior a 2000 e falhará espetacularmente depois. Defina espetacularmente como quiser.
Para todas as pessoas que perderam o primeiro Y2K, aqui está sua chance!
Responda com vitórias mais altas.
Respostas:
Pitão
Os erros reais do ano 2000 são representados no ano como um número de 2 dígitos. E fazer algo errado quando esse número ultrapassar os 0. Como esse cão de guarda de mísseis nucleares, lançar todos os ICBMs se não recebermos uma mensagem de pulsação do HQ em 60 segundos.
fonte
Java e cmd
Onde disaster.bat está
fonte
Ruby, código de golfe (31 caracteres)
É suposto não fazer nada. A falha é bastante "espetacular" (em sistemas Unix antigos sem a bandeira de preservação de raiz) :-)
fonte
Ruby (962 caracteres)
Para ser sincero, os desastres aqui não parecem autênticos. Eu decidi fazer algo que parece mais ... uhm ... legítimo. O código é digno do The Daily WTF, mas, além disso, é crível (se você trabalha em uma empresa de programação muito ruim).
Aviso: este código é perigoso e destruirá seu computador (se você não tiver
--no-preserve-root
proteção, é isso). Não corra.fonte
SH
Mentir é uma coisa muito terrível :)
fonte
Javascript
fonte
Isso funciona como planejado no Slackware Linux 4.0 (lançado em maio de 1999) - até que haja arquivos modificados pela última vez em 2000, que são substituídos pelas versões antigas a partir de 1999!
fonte
SQL
Infelizmente, esta tabela herdou algumas "características" do sistema anterior. Um dos quais era um campo de dois dígitos para conter o ano de término.
fonte
Java + SQL
Eu acho que isso corresponde melhor ao objetivo da pergunta - ou seja, quebra não intencional.
Digamos que este seja um aplicativo para um registro de nascimento, onde eles gravam bebês recém-nascidos em um banco de dados e emitem certidões de nascimento. Alguns "gênios" projetaram a tabela mais ou menos assim:
E o aplicativo java para registrar nascimentos tem algum código ao longo das linhas de:
Então o INSERT começaria a falhar no ano 2000 e ninguém mais poderia obter uma certidão de nascimento. Razão - java.util.Date # getYear () retorna o ano menos 1900, que possui três dígitos a partir de 2000.
fonte
Não sou programador, mas gosto de ler essas postagens para ver o que outras pessoas talentosas inventam (e para as risadas). O script shell ocasional é o mais próximo que chego da codificação verdadeira. Aqui está um para a mistura:
Bater
fonte
C #
O que está acontecendo:
Ei, um gerador de números aleatórios! Legal! Eu posso usá-lo para ... ehm ... bem, isso não importa.
Este programa usa o valor time_t mais uma constante
totalmente aleatóriapara gerar uma semente. Infelizmente, esse valor em 01/01 2000 se torna maior que 2.147.483.647, que é oint
limite. A conversãotime_t
gera uminteger overflow
. Isso não teria sido um problema se não fosse pelaMath.Log
função, que tenta agora calcular o logarma de uma quantidade negativa, o que é impossível. A semente se tornaNaN
e a instrução a seguir falha.EDIT: Removida uma linha de código desnecessária, herdada de uma solução anterior que eu abandonei antes de escrever esta.
fonte
sh
deveria imprimir
sh: \: command not found
, quebra terrivelmente depois de 2000fonte
C
Este programa estraga tudo devido a dois dígitos do ano. Literalmente.
Nota: Verifique se você salvou todos os dados antes de executar isso ou imponha um limite de processo. Isto irá executar uma bomba de garfo,
fonte
Python 343 caracteres
947 caracteres com comentários, 343 caracteres sem comentários
Estou bastante certo de que este causou problemas reais (e no ano 2000 até então).
fonte
C ++ - 194 caracteres
Em 2000, ele exibirá a mensagem de que seu computador não é compatível com o Y2K e o desligamento.
fonte
SH
Isso é inofensivo desde que estamos em 2013. Experimente você mesmo;).
NOTA: O comentário acima foi uma piada , o script SH acima é extremamente perigoso e provavelmente arruinará seu sistema.
fonte
;
antesthen
, também que você realmente quer dizer isso para imprimirsh: rm -rf ~: command not found
Oracle SQL
ORDERS
contém informações referentes ao processamento de pedidos de catálogo de pedidos por correio. Cada umorder_id
pode ter várias transações (criadas, processadas, preenchidas, canceladas)Reter apenas a transação mais recente por pedido:
fonte