Para calendários gregorianos, o formato da data varia de um país para outro. Existem três formatos principais reconhecidos:
YY-MM-DD
(big endian)DD-MM-YY
(pequeno endian)MM-DD-YY
(endian médio)
Sua tarefa é escrever um programa que, dada uma sequência de entrada representando uma data, produza todos os formatos de data possíveis pelos quais essa sequência pode ser interpretada como uma data.
Regras
- A data de entrada está no formato
xx-xx-xx
, onde cada campo tem dois dígitos e preenchimento com zero. - A data é sempre válida (portanto, você não pode obter coisas como 14-13-17)
- A data é sempre pelo menos um dos formatos acima (portanto, você não pode obter coisas como 17-14-11)
- Como estamos de fato em um mundo paralelo, existem 31 dias para cada mês do ano e, consequentemente, nenhum ano bissexto.
- A data é entre 01 de janeiro de 2001 e 31 de dezembro de 2099
- Se houver apenas um formato para a data, o código deverá imprimi-lo apenas (somente novas linhas à direita são permitidas)
- Se houver vários formatos para a data, eles deverão ser separados por vírgula, espaço, nova linha ou uma combinação desses
- Você deve exibir o nome exato do (s) formato (s). O uso de valores arbitrários distintos não é permitido.
- Nenhum caractere inicial ou final, exceto um espaço final, é permitido
- A saída deve estar em minúscula
- Você não tem permissão para usar nenhuma função interna de data ou calendário
- Os formatos de saída não precisam ser classificados
Exemplos
Input Output
30-05-17 big-endian, little-endian
05-15-11 middle-endian
99-01-02 big-endian
12-11-31 big-endian, little-endian, middle-endian
02-31-33 middle-endian
Isso é código-golfe, portanto o código mais curto em bytes vence. As explicações são incentivadas.
there are 31 days for every month of the year, and consequently no leap years
Então isso significa que qualquer biblioteca de datas é efetivamente inútil para isso?