Setembro de 1993 é conhecido na Usenet como o setembro que nunca terminou. Assim, por exemplo, o dia em que esta pergunta está sendo publicada é sábado, setembro de 8740, 1993.
Seu programa ou função deve ter como entrada qualquer data gregoriana (com ano positivo) e retornar a mesma data que a saída, se for anterior a setembro de 1993 ou a data do calendário de setembro de 1993, posteriormente.
Você pode aceitar AAAA-MM-DD, AAAA / MM / DD, MM / DD / AAAA, DD / MM / AAAA, D-Monthnameabbr-AAAA ou qualquer outro formato popular que utilize a totalidade do ano (em oposição ao ano módulo 100). Você só precisa aceitar um desses formatos, de sua escolha. O formato de saída deve corresponder ao formato de entrada.
Entrada de amostra → saída:
- Domingo, 6 de agosto de 2017 → domingo, 8741 setembro de 1993
- Terça-feira, 28 de janeiro de 1986 → terça-feira, 28 de janeiro de 1986
Ou:
- 2017-08-06 → 1993-09-8741
- 1986-01-28 → 1986-01-28
No interesse de respostas mais interessantes, o uso de uma função interna projetada para essa finalidade (como o sdate
comando UN * X ) não é permitido. Além disso e das exceções padrão , isso é golfe, então a resposta mais curta vence.
Respostas:
JavaScript (ES6), 48 bytes
Baseado no algoritmo do @ Mr.Xcoder.
fonte
Python 3 , 109 bytes
Experimente online!
-59 bytes graças a notjagan
-3 bytes graças a Mr. Xcoder
-2 bytes graças a officialaimm
-12 bytes graças a Jonathan Allan
fonte
-8644+1
pode ser-8643
..z>9
outra forma, você perde o zero à esquerda no dia.Mathematica, 55 bytes
I / O
-6 bytes thanx ao usuário202729
fonte
{1993,9,1}
volta por um dia, para remover a+1
, economizando 2 bytes?{1993,9,0}
é permitido.Perl 5 , 102 + 16 (-MTime :: Local -F-) = 118 bytes
Experimente online!
Toma a data como "AAAA-MM-DD"
Acho que fiz a contagem diretamente nas opções da linha de comando. Tenho certeza que alguém vai me corrigir se eu não o fiz.
fonte
C # (.NET Core) , 107 bytes
Experimente online!
Toma datas como M / D / AAAA (números abaixo de 10 escritos com apenas 1 dígito). Escrito no meu celular usando a API de cor.
fonte
Gaia , 78 bytes
Experimente online!
Explicação
Primeiro, temos uma função auxiliar que determina se um ano é bissexto.
A principal função faz o resto do trabalho:
fonte