Herausforderung
Seltsamerweise wurde dies noch nicht getan: das aktuelle Datum ausgeben.
Regeln
Das Datumsformat, dem Sie folgen sollten, lautet wie folgt:
YYYY-MM-DD
Wo der Monat und der Tag mit Nullen aufgefüllt werden sollen, wenn sie kleiner als 10 sind.
Wenn das Programm beispielsweise am 24. Mai 2017 ausgeführt wird, sollte es ausgegeben werden
2017-05-24
Das Datum kann entweder immer in UTC oder im lokalen Datum liegen.
Sie müssen Sprünge Jahre behandeln. dh in Schaltjahren hat der Februar 29 Tage, in einem normalen Jahr jedoch 28 Tage.
Gewinnen
Kürzester Code in Bytes gewinnt.
Antworten:
Bash ,
167 Bytes-8 Byte dank Neil (und Fergusq) (keine Pipe zur Ausgabe erforderlich)
-1 Byte dank 12431234123412341234123 (Verwenden Sie die eingebaute Option mit Flag
-I
!)Probieren Sie es online!
quelle
echo $(...)
?date
Ausgänge bereits, der Ausgang wird an stdout weitergeleitet. Sie müssen es nicht weiterleitenecho
, wodurch es an stdout weitergeleitet wird. Probieren Sie es online!echo
, dann zumindestecho `date +%F`
.-I
?PHP, 17 Bytes
quelle
YYYY-MM-DDThh:mm:ss+hh:mm
ist auch ein ISO 8601 Datum formatiert und diese 11 Bytes:<?=date(c);
drucke das ganze Zeug aus. ;)<?=strstr(date(c),T,1);
um dem c-Format eine kleine Chance zu gebenJapt , 6 Bytes
Probieren Sie es online!
Erläuterung:
quelle
Bash, 15 Bytes
Probelauf:
Probieren Sie es online!
quelle
T
.JavaScript (ES6), 34 Byte
quelle
_=>new Date().toJSON().slice(0,10)
SQLite, 13 Zeichen
Guter Junge, SQLite. Andere SQL-Dialekte benötigen normalerweise entweder
current_date
oderdate(now())
.Probelauf:
quelle
curdate
Mathematica, 20 Bytes
quelle
Perl 6 ,
14,12 BytesVersuch es
Versuch es
quelle
Excel, 24 Bytes
Excel macht immer noch eine 4-stellige Jahreszahl mit nur 3
y
.quelle
")
. Excel wird nicht. Es wird das hinzufügen)
am Ende , sondern erst , nachdem Sie aufgefordert werden, so wäre es zusätzliche Benutzereingabe erfordern und die Partitur wieder fahren. 24 Byte sind wahrscheinlich die kürzeste Excel-Antwort, es sei denn, wir lassen regionale Einstellungen zu, die standardmäßig das ISO-Datumsformat verwenden, und das steht zur Debatte .R , 10 Bytes
Probieren Sie es online!
quelle
sys.date
bereits um eine Funktion handelt, müssen Sie die nicht hinzufügen()
, daher sind dies nur 8 Byte :)Sys.Date
ist eine Funktion, würde also als Lösung ausreichen. Es muss nicht explizit aufgerufen werden.Sys.Date
erledigt die Ausgabe für Sie. Es ist ähnlich wie bei einer Lösung,function(x)
die mit einem expliziten Aufruf beginnt . Es ist nur, wie eingebaute Ins bewertet werden.Lua, 18 Zeichen
Probelauf:
Probieren Sie es online!
quelle
Alice , 9 Bytes
Probieren Sie es online!
Erläuterung
Ich überlasse den genauen Kontrollfluss dem Leser als Übung, aber der linearisierte Code, der im Ordinal-Modus ausgeführt wird, lautet:
Und hier ist, was es tut:
Eine Möglichkeit, wie Sie Golf spielen können, besteht darin
%
, das Programm im Kardinal-Modus mit einer Division durch Null zu beenden. Das einzige Layout, das ich mir ausgedacht habe, ist das Folgende:Aber hier wird das
%
Programm nicht beendet, da wir 111 ('o
) direkt vorher drücken, sodass es nie eine Division durch Null gibt.Im Prinzip ist es auch möglich, das wiederzuverwenden
%
, um es loszuwerden;
, da der Versuch, das Datum nach der Uhrzeit aufzuteilen, die Uhrzeit einfach verwirft.quelle
SmileBASIC 3, 29 Bytes
SB hat einen eingebauten Datumsstring ... aber er hat das falsche Format! Es werden Schrägstriche anstelle von Bindestrichen verwendet, was nicht gut ist. Da es sich um das selbstbewusste BASIC handelt, gibt es keine globale Ersatzfunktion. Ich muss es wohl selbst machen ...
quelle
VBA,
525 Bytesunvorhersehbar, abhängig von den Einstellungen für kurze Systemdaten?Date
Ausgabe:
quelle
. The default format for this is
M / T" eingestellt hat / YYYY` und damit diese für die Ausgabe derDate
Funktion ist5/25/2017
. Um dies zu korrigieren, müsste Ihre Antwort in einenFormat
Anruf eingebunden werden.?format(now,"yyyy-mm-dd")
mitnow
ist kürzer alsdate
Prolog (SWI) , 46 Bytes
Probieren Sie es online!
quelle
QBIC , 33 Bytes
Erläuterung:
quelle
CJam ,
2215 BytesProbieren Sie es online!
-7 Bytes dank Challenger5.
Erläuterung:
quelle
e[
(Pad-Array) für 15 Bytes verwenden:et3<{sY0e[}%'-*
Python 2, 40 Bytes
quelle
Los ,
6256 BytesProbieren Sie es online!
quelle
Oracle SQL, 46 Byte
quelle
Powershell,
2617 BytesDanke an @ConnorLSW für die 9 Bytes.
quelle
date -f 'yyyy-MM-dd'
Ruby, 23 Bytes
Gibt die Ortszeit aus.
quelle
p Time.now.to_s[0..9]
MATLAB / Octave ,
2515 BytesProbieren Sie es online!
Die eingebaute Funktion
now
gibt das aktuelle Systemdatum in einem seltsamen seriellen MATLAB-Format zurück.datestr
formatiert das seltsame serielle Format in eine Zeichenfolge eines angeforderten Formats - in diesem Fall'YYYY-mm-dd'
. Es stellt sich heraus, dass MATLAB eine Liste vordefinierter Formate für hatdatestr
. ISO8601 ist eine davon und wird durch die Nummer 29 dargestellt, was eine Einsparung von 10 Bytes ermöglicht.quelle
Python 2 ,
5340 Bytes-10 Byte dank Gábor Fekete (ISO-8601 ist das Standardformat für ein Datumsobjekt)
Probieren Sie es online!
Wie?
datetime.date.today()
Gibt eindatetime.date
Objekt zurück, das die lokalen Datumsinformationen enthält.print
Gibt eine Zeichenfolgendarstellung dieses Objekts aus. Dies ruft das Objekt auf__str__
. Funktion .Aus den Dokumenten :
date.__str__()
: Für adate
d
,str(d)
entsprichtd.isoformat()
.date.isoformat()
: Gibt einestring
Darstellung des Datums im ISO 8601- Format zurück‘YYYY-MM-DD’
. Zum Beispieldate(2002, 12, 4).isoformat() == '2002-12-04'
.quelle
import datetime;print datetime.date.today()
Dies ist nur 43 Bytes und verwendet datetime. Warum wird die noch kürzere Version gelöscht?print
). Rettete drei weitere Taten (das Böse)import*
.print
gelöschte und dann nicht gelöschte Zeit einzuschließen.Kristall ,
30 Bytes24 Bytes21 Bytes-6 danke an Nick Clifford
-3 von der Antwort von snail_ in Ruby
Probieren Sie es online!
quelle
%F
. Auch schön, Crystal auf PPCG zu sehen!Rust, 84 Bytes
quelle
C #,
4645 BytesEin Byte dank @raznagul gespeichert.
quelle
Sytem
?System
Namespace erstellt habe, weil ich den gleichen Tippfehler gemacht habe ..."yyy-MM-dd"
funktioniert auch die Formatzeichenfolge.Java 8,
2632 BytesFestes Format dank Kevin Cruijssen
quelle
()->java.time.LocalDate.now().toString()
stattdessen sein. Dann wieder, können Sie Golf.toString()
auf+""
, so wird es()->java.time.LocalDate.now()+""
insgesamt ( 32 Byte ).C ++ 14,
143 Bytes139 BytesTimtech hat mich darauf hingewiesen, dass ich nicht alle Räume brauche
Teste mich!
quelle
Schnell, 13 Bytes
quelle