Desafio
Em cada um dos 12 dias de Natal, reproduza o verso apropriado de "12 dias de Natal", de acordo com a data, caso contrário, faça o refrão de "Gostaria que pudesse ser Natal todos os dias".
Novas linhas à esquerda e / ou à direita ( \n
) e espaços à direita são permitidos. Você não pode ler de fontes externas.
Basicamente, o que você precisa fazer é ler a data do sistema e emitir o versículo correspondente aos "12 dias de Natal".
12 Dias de Natal
Os Doze Dias de Natal são a época cristã festiva, começando no dia de Natal (25 de dezembro) e terminando no dia 5 de janeiro.
Exemplos
Se a data for 25 de dezembro (imprima o menor / primeiro verso):
On the first day of Christmas
my true love sent to me:
a Partridge in a Pear Tree
Se a data for 31 de dezembro (imprima o sétimo verso):
On the seventh day of Christmas
my true love sent to me:
7 Swans a Swimming
6 Geese a Laying
5 Golden Rings
4 Calling Birds
3 French Hens
2 Turtle Doves
and a Partridge in a Pear Tree
Se a data for 5 de janeiro (imprima o versículo mais longo / último / 12):
On the twelth day of Christmas
my true love sent to me:
12 Drummers Drumming
11 Pipers Piping
10 Lords a Leaping
9 Ladies Dancing
8 Maids a Milking
7 Swans a Swimming
6 Geese a Laying
5 Golden Rings
4 Calling Birds
3 French Hens
2 Turtle Doves
and a Partridge in a Pear Tree
Se a data não estiver entre 25 de dezembro e 5 de janeiro, inclusive:
Well I wish it could be Christmas every day
When the kids start singing and the band begins to play
Oh I wish it could be Christmas every day
So let the bells ring out for Christmas
Feliz Natal!
fonte
Respostas:
CJam,
557550530528522519 bytesTeste aqui. Para experimentar datas diferentes, substitua
et3<(;
por algo como[12 25]
.Provavelmente ainda há espaço para melhorias.
fonte
5 Golden R(ing)
não aceitável? Droga! existe alguma maneira de aplicar o-ing
final e o-s
final ao número 5?Python 2,
681676673670667 bytesEu tentei competir contra CJam ... e falhei como esperado. Talvez se eu pudesse descobrir como zlib, mas eu não sei ...
(Obrigado a @FryAmTheEggman por sugestões via chat)
fonte
É grande! Isso significa! É feio! Está...
Java:
894.887.883.882bytesGolfe:
Ungolfed:
Depois de mexer bastante e ganhar 14 bytes, acho que vou parar de brincar.
E sim, eu sei que, em anos bissextos, minha ideia pode ter um pouco de problema, mas ... era minha maneira de cortar alguns bytes do código. Ah bem.
fonte
<!-- language: lang-java -->
antes de um bloco de código. Use<!-- language-all: lang-java -->
para todos os blocos de código do seu documento. Para mais olhar de informação em codegolf.stackexchange.com/editing-helpErlang, 748 bytes
Uma versão limpa de 7 bits sem gzip-9 é de 748 bytes:
Uma solução gzip-9 + base64 tem 750 bytes:
Uma função Erlang codificada em UTF-8 tem 421 caracteres (935 bytes).
fonte
Javascript (665)
Você pode testá-lo adicionando parênteses à primeira
new Date
alteração, ou seja:para
Aqui é embelezado:
fonte
C # no Linqpad - 866 bytes
Bem, pelo menos ele venceu o Java;) Os anos bissextos são tratados dentro do código.
Não formatado:
Formatado:
fonte
int y=w.Year%4
. Se o móduloy
for 0, adiciono um aoc
com a ajuda dep
.