O calendário Mel é usado no mundo fictício de Kaldia. Seu objetivo é converter datas no calendário Mel.
Este calendário tem 13 meses de 28 dias cada, mais 1 ou 2 dias extras após o último mês. Um ano que é divisível por 4, mas não por 100, ou divisível por 400 tem 366 dias, e outros anos têm 365 (ou seja, o ano bissexto rege, mas com anos no calendário Mel).
Você deve usar as abreviações do nome do mês e do dia :
meses: dia vio lis gil ful dyu mel ral zan pal mik fav ruj
dias: dia vio lis gil dyu mel ral zan pal mik fav ruj ser rav tan lin rez jil din ket len lax nen pin mat kun mir
Os dias extras fora de qualquer mês têm o nome do mês de myuxet
(sem abreviação aqui) e os nomes dos dias são axet
e teems
, respectivamente.
0 dia dia
é 30/11/1988.
Você pode considerar a data de entrada como uma string ou uma tupla (ano, mês, dia); Como alternativa, para funções, o parâmetro pode estar no tipo de data da sua biblioteca padrão. A saída deve ser uma cadeia de caracteres separada por espaço.
Casos de teste
1776-07-04 => -213 ral ket
1859-12-15 => -129 dia rav
1917-04-14 => -72 ful nen
1981-02-04 => -8 lis mik
1988-11-30 => 0 dia dia
1988-12-01 => 0 dia vio
1988-12-28 => 0 vio dia
2017-01-01 => 28 vio ful
2019-04-22 => 30 dyu lis
2019-11-30 => 30 myuxet axet
2019-12-01 => 31 dia dia
2021-11-29 => 32 myuxet axet
2021-11-30 => 32 myuxet teems
2089-11-30 => 101 dia dia
2389-11-30 => 400 myuxet teems
Você deve poder lidar com datas de 1 a 9999 dC, pelo menos.
Implementação de referência no Perl 6
As brechas padrão são proibidas.
-213 Ral Ket
?
axet
eteems
estão no final do ano, eu estava confuso até que eu olhei para o link