Kira precisa de sua ajuda!
Formato de entrada:
Date [and/or Time]
Name
Gender
Reason
Formato de saída:
<Last Name, First Name> <will die/died> on the <DD><st/nd/rd/th> of <MMM, YYYY> [at <hh:mm:ss TT>].
<He/She> <will die/died> of <Reason>.
Detalhes, detalhes:
Seu programa deve contabilizar pelo menos os seguintes formatos de entrada de data:
9 November 2003
9/11/2003
November 9, 2003
Formatos de hora:
hh tt
hh TT
hh:mm tt
hh:mm TT
hh:mm:ss tt
hh:mm:ss TT
HH
HH:mm
HH:mm:ss
Os seguintes formatos de entrada de nome:
first // Stephen
last // Harper
first last // Stephen Harper
last, first // Harper, Stephen
Casos de teste:
Entrada:
2 September 1973
J.R.R. Tolkien
Male
pneumonia
Resultado:
Tolkien, JRR morreu em 2 de setembro de 1973.
Ele morreu de pneumonia.
AVISO LEGAL: Se ele realmente morrer nesta data, a culpa é de Kira , não minha.
ATUALIZAÇÃO: Stephen Harper não morreu na data listada
Entrada:
21/12/12 23:59:59 // DD/MM/YY HH:mm:ss
Harper, Stephen // Last, First
Unknown // Gender
a heart attack for no reason // Reason
Resultado:
Harper, Stephen morrerá em 21 de dezembro de 2012 às 23:59:59.
Harper, Stephen vai morrer de ataque cardíaco sem motivo.
Bônus:
July 21, 1969 02:56:15 GMT
Armstrong, Neil
Male
poisoned moon cheese
--
January 19, 2038 03:14:08 GMT
Everyone
Unknown
Y2K38
Adicione <st/nd/rd/th>
no final de DD
para entrada.
Respostas:
Javascript (561)
Provavelmente, isso pode ser reduzido significativamente, mas aqui vai:
E / S de amostra:
Experimente no JsFiddle .
fonte
i="9 November 2003 03:14:08 GMT\nDouglas Adams\nMale\nI forgot";
me dá o8th of November
.VB.NET,
727695Ok, jogou um pouco de golfe. Requer
Option Strict Off
.Ele aceita as datas em todos os casos de teste e em muitos outros formatos graças a
Date.Parse
. Ele aceita muitos gêneros (como você pode ver) também. Se Kira decidir colocar apenas o nome ou sobrenome da pessoa, o programa falhará.fonte
MonthName(d.Month)
chamadaCSharp - 463 caracteres
fonte
PHP,
509474462461 caracteresAdicionei novas linhas após cada uma,
;
mas não as contei, pois elas não precisam estar lá.Se o código manipula datas além de 19 de janeiro de 2038 03:14:07, depende de ser executado em uma máquina de 64 bits.
fonte
VBA,
384366 bytesGolfe
sub
Rotina completa que recebe entrada do tipo esperadoVariant\String
e gera a mensagem da nota de morte associada para a janela do VBENota: O VBA é incapaz de manipular fusos horários sem declarar funções da API do Windows, portanto, como não são necessárias para a pergunta, elas foram excluídas
Verison bônus,
394376 bytesVersão ligeiramente modificada acima, que lida com todos os casos de bônus, com exceção dos fusos horários (correção para manipulação de monônimos)
Uso
sequência de entrada e saída dos problemas de exemplo, como visto na janela imediata do VBE
fonte