Desafio
Estranhamente, isso ainda não foi feito: produza a data atual.
Regras
O formato da data que você deve seguir é o seguinte:
YYYY-MM-DD
Onde o mês e o dia devem ser preenchidos com zeros se forem menores que 10.
Por exemplo, se o programa for executado em 24 de maio de 2017, ele deverá gerar uma saída
2017-05-24
A data pode estar sempre no UTC ou na data local.
Você deve lidar com anos bissextos. ou seja, em anos bissextos, fevereiro tem 29 dias, mas 28 dias em um ano normal.
Ganhando
O menor código em bytes vence.
Respostas:
Bash ,
167 bytes-8 bytes graças ao Neil (e fergusq) (nenhum pipe é necessário para a saída)
-1 byte graças ao 12431234123412341234123 (use a opção embutida com o sinalizador
-I
!)Experimente online!
fonte
echo $(...)
?date
saídas já, a saída é canalizada para stdout. Você não precisa canalizá-loecho
, o que direciona para o stdout. Experimente online!echo
, pelo menosecho `date +%F`
.-I
?PHP, 17 bytes
fonte
YYYY-MM-DDThh:mm:ss+hh:mm
também é uma data formatada em ISO 8601 e esses 11 bytes:<?=date(c);
imprimem todo o material. ;)<?=strstr(date(c),T,1);
para dar ao formato c um pouco de chanceJaponês , 6 bytes
Experimente online!
Explicação:
fonte
Bash, 15 bytes
Exemplo de execução:
Experimente online!
fonte
T
.JavaScript (ES6), 34 bytes
fonte
_=>new Date().toJSON().slice(0,10)
SQLite, 13 caracteres
Bom garoto, SQLite. Outros dialetos SQL geralmente precisam de um
current_date
oudate(now())
.Exemplo de execução:
fonte
curdate
Mathematica, 20 bytes
fonte
Perl 6 ,
1412 bytesTente
Tente
fonte
Excel, 24 bytes
O Excel ainda fará um ano de 4 dígitos com apenas 3
y
's.fonte
")
. O Excel não. Ele irá adicionar o)
sobre o fim, mas apenas depois de pedir-lhe para que ele exigiria a entrada do usuário adicional e conduzir a pontuação novamente. 24 bytes é provavelmente a resposta mais curta do Excel, a menos que permitamos configurações regionais usando o formato de data ISO por padrão, e isso está em debate .R , 10 bytes
Experimente online!
fonte
sys.date
já é uma função, você não tem que adicionar o()
, então isso é apenas 8 bytes :)Sys.Date
é uma função, portanto seria suficiente como solução. Não há necessidade de chamá-lo explicitamente.Sys.Date
faz a saída para você. É semelhante a quando você tem uma solução que começa comfunction(x)
, também não termina com uma chamada explícita. É exatamente como os built-ins são pontuados.Lua, 18 caracteres
Exemplo de execução:
Experimente online!
fonte
Alice , 9 bytes
Experimente online!
Explicação
Deixarei o fluxo exato de controle como um exercício para o leitor, mas o código linearizado que está sendo executado no modo Ordinal é:
E aqui está o que ele faz:
Uma maneira de isso ser possível é reutilizar o
%
para encerrar o programa no modo Cardinal com uma divisão por zero, mas o único layout que criei é o seguinte:Mas aqui, na
%
verdade , ele não encerra o programa, porque pressionamos 111 ('o
) imediatamente, para que nunca haja uma divisão por zero.Em princípio, também pode ser possível reutilizar
%
para se livrar dele;
, pois tentar dividir a data ao longo do tempo simplesmente descartará o tempo.fonte
SmileBASIC 3, 29 bytes
SB tem uma string de data incorporada ... mas está no formato errado! Ele usa barras em vez de traços, nada bom. Além disso, sendo o BASIC que se preze, não há função de substituição global. Eu acho que tenho que fazer isso sozinho ...
fonte
VBA,
525 bytesimprevisível, dependente das configurações de datas curtas do sistema?Date
Saída:
fonte
. The default format for this is
M / D / AAAA` e, portanto, isso para a saída daDate
função é5/25/2017
. Para corrigir isso, sua resposta precisa ser agrupada em umaFormat
chamada.?format(now,"yyyy-mm-dd")
usandonow
é menor do quedate
Prolog (SWI) , 46 bytes
Experimente online!
fonte
QBIC , 33 bytes
Explicação:
fonte
CJam ,
2215 bytesExperimente online!
-7 bytes graças ao Challenger5.
Explicação:
fonte
e[
(matriz de pad) para 15 bytes:et3<{sY0e[}%'-*
Python 2, 40 bytes
fonte
Go ,
6256 bytesExperimente online!
fonte
Oracle SQL, 46 bytes
fonte
Powershell,
2617 bytesObrigado a @ConnorLSW pelos 9 bytes.
fonte
date -f 'yyyy-MM-dd'
Ruby, 23 bytes
Imprime a hora local.
fonte
p Time.now.to_s[0..9]
MATLAB / Oitava ,
2515 bytesExperimente online!
A função
now
interna retorna a data atual do sistema em um formato serial MATLAB estranho.datestr
formata o formato serial estranho em uma sequência de um formato solicitado - que é neste caso'YYYY-mm-dd'
. Acontece que o MATLAB tem uma lista de formatos predefinidos paradatestr
. A ISO8601 é uma delas e é representada pelo número 29, que permite economizar 10 bytes.fonte
Python 2 ,
5340 bytes-10 bytes graças a Gábor Fekete (ISO-8601 é o formato padrão para um objeto de data)
Experimente online!
Quão?
datetime.date.today()
retornará umdatetime.date
objeto que contém as informações da data local.print
imprimirá uma representação de string desse objeto, isso chamará a__str__
função do objeto .Dos documentos :
date.__str__()
: Para adate
d
,str(d)
é equivalente ad.isoformat()
.date.isoformat()
: Retorne astring
representando a data no formato ISO 8601‘YYYY-MM-DD’
,. Por exemplodate(2002, 12, 4).isoformat() == '2002-12-04'
,.fonte
import datetime;print datetime.date.today()
isso é apenas 43 bytes e usa datetime. Por que a versão ainda mais curta é excluída?print
). Salvou outros três fazendo (o mal)import*
.print
tempo excluído e a exclusão.Cristal ,
30 bytes24 bytes21 bytes-6 agradecimentos a Nick Clifford
-3 de olhar para a resposta de snail_ em Ruby
Experimente online!
fonte
%F
. Além disso, é bom ver o Crystal no PPCG!Ferrugem, 84 bytes
fonte
C #,
4645 bytesGuardou um byte graças a @raznagul.
fonte
Sytem
?System
namespace porque eu continuei a fazer o mesmo erro de digitação ..."yyy-MM-dd"
também funcionará.Java 8,
2632 bytesFormato fixo graças a Kevin Cruijssen
fonte
()->java.time.LocalDate.now().toString()
. Então, novamente, você pode golfe.toString()
para+""
, então, torna-se()->java.time.LocalDate.now()+""
no total ( 32 bytes ).C ++ 14,
143 bytes139 bytesA Timtech me indicou que não preciso de todos os espaços
Me teste!
fonte
Rápido, 13 bytes
fonte