Wyzwanie
Co dziwne, nie zostało to jeszcze zrobione: wyświetl aktualną datę.
Zasady
Format daty, którego należy przestrzegać, jest następujący:
YYYY-MM-DD
Gdzie miesiąc i dzień powinny być uzupełnione zerami, jeśli są mniejsze niż 10.
Na przykład, jeśli program zostanie uruchomiony 24 maja 2017 r., Powinien zostać wygenerowany
2017-05-24
Data może być zawsze w UTC lub w dacie lokalnej.
Musisz poradzić sobie z latami przestępnymi. tj. w latach przestępnych luty ma 29 dni, ale 28 dni w roku normalnym.
Zwycięski
Najkrótszy kod w bajtach wygrywa.
Odpowiedzi:
Bash ,
167 bajtów-8 bajtów dzięki Neilowi (i fergusq) (nie jest wymagana rura do wyjścia)
-1 bajtów dzięki 12431234123412341234123 (użyj wbudowanej opcji z flagą
-I
!)Wypróbuj online!
źródło
echo $(...)
?date
wyjścia już, wyjście jest przesyłane do standardowego wyjścia. Nie musisz go potokowaćecho
, co doprowadza do stdout. Wypróbuj online!echo
, to przynajmniejecho `date +%F`
.-I
?PHP, 17 bajtów
źródło
YYYY-MM-DDThh:mm:ss+hh:mm
jest to również data sformatowana w standardzie ISO 8601 i te 11 bajtów:<?=date(c);
wydrukuj całość. ;)<?=strstr(date(c),T,1);
dać małą szansę formatowi cJapt , 6 bajtów
Wypróbuj online!
Wyjaśnienie:
źródło
Bash, 15 bajtów
Przykładowy przebieg:
Wypróbuj online!
źródło
T
.JavaScript (ES6), 34 bajty
źródło
_=>new Date().toJSON().slice(0,10)
SQLite, 13 znaków
Dobry chłopak, SQLite. Inne dialekty SQL zazwyczaj muszą być albo
current_date
albodate(now())
.Przykładowy przebieg:
źródło
curdate
Mathematica, 20 bajtów
źródło
Perl 6 ,
1412 bajtówSpróbuj
Spróbuj
źródło
Excel, 24 bajty
Excel nadal będzie robił 4-cyfrowy rok z tylko 3
y
.źródło
")
. Excel nie chce. Doda to znak)
na końcu, ale dopiero po wyświetleniu monitu, aby wymagało to dodatkowego wkładu użytkownika i ponownie podniosło wynik. 24 bajty to prawdopodobnie najkrótsza odpowiedź programu Excel, chyba że zezwalamy na ustawienia regionalne domyślnie korzystające z formatu daty ISO, co jest przedmiotem dyskusji .R , 10 bajtów
Wypróbuj online!
źródło
sys.date
jest już funkcją, nie musisz dodawać()
, więc jest to tylko 8 bajtów :)Sys.Date
jest funkcją, więc wystarczyłoby jako rozwiązanie. Nie ma potrzeby jawnego nazywania tego.Sys.Date
robi dla ciebie wyjście. Podobnie jest w przypadku rozwiązania, które zaczyna się odfunction(x)
, ale nie kończy się to również jawnym wywołaniem. Tak właśnie są oceniane punkty wbudowane.Lua, 18 znaków
Przykładowy przebieg:
Wypróbuj online!
źródło
Alice , 9 bajtów
Wypróbuj online!
Wyjaśnienie
Dokładny przepływ kontroli pozostawiam czytelnikowi jako ćwiczenie, ale zlinearyzowany kod uruchamiany w trybie porządkowym to:
A oto, co robi:
Jednym ze sposobów, w jakie może to być możliwe, jest ponowne użycie programu
%
do zakończenia programu w trybie kardynalnym z dzieleniem przez zero, ale jedyny wymyślony przeze mnie układ jest następujący:Ale tutaj
%
tak naprawdę nie kończy programu, ponieważ naciskamy 111 ('o
) wcześniej, więc nigdy nie ma podziału na zero.Zasadniczo może być również możliwe ponowne użycie,
%
aby się go pozbyć;
, ponieważ próba podzielenia daty wokół godziny po prostu ją odrzuci.źródło
SmileBASIC 3, 29 bajtów
SB ma wbudowany ciąg daty ... ale ma niewłaściwy format! Używa ukośników zamiast myślników, nic dobrego. Ponadto, ponieważ jest to szanujący się język BASIC, nie ma globalnej funkcji zamiany. Chyba muszę to zrobić sam ...
źródło
VBA,
525 bajtównieprzewidywalny, zależny od ustawień krótkiej daty w systemie?Date
Wydajność:
źródło
. The default format for this is
M / D / YYYY`, a więc to dla wyjściaDate
funkcji jest5/25/2017
. Aby to skorygować, odpowiedź musiałaby być zapakowana wFormat
rozmowę.?format(now,"yyyy-mm-dd")
użycienow
jest krótsze niżdate
Prolog (SWI) , 46 bajtów
Wypróbuj online!
źródło
QBIC , 33 bajty
Wyjaśnienie:
źródło
CJam ,
2215 bajtówWypróbuj online!
-7 bajtów dzięki Challenger5.
Wyjaśnienie:
źródło
e[
(tablica padów) dla 15 bajtów:et3<{sY0e[}%'-*
Python 2, 40 bajtów
źródło
Idź ,
6256 bajtówWypróbuj online!
źródło
Oracle SQL, 46 bajtów
źródło
PowerShell,
2617 bajtówDzięki @ConnorLSW za 9 bajtów.
źródło
date -f 'yyyy-MM-dd'
Rubinowy, 23 bajty
Drukuje czas lokalny.
źródło
p Time.now.to_s[0..9]
MATLAB / Octave ,
2515 bajtówWypróbuj online!
Wbudowana funkcja
now
zwraca bieżącą datę systemową w dziwnym formacie szeregowym MATLAB.datestr
formatuje dziwny format szeregowy na ciąg żądanego formatu - w tym przypadku'YYYY-mm-dd'
. Okazuje się, że MATLAB ma listę predefiniowanych formatówdatestr
. ISO8601 jest jednym z nich i jest reprezentowany przez liczbę 29, co pozwala zaoszczędzić 10 bajtów.źródło
Python 2 ,
5340 bajtów-10 bajtów dzięki Gáborowi Fekete (ISO-8601 jest domyślnym formatem dla obiektu daty)
Wypróbuj online!
W jaki sposób?
datetime.date.today()
zwrócidatetime.date
obiekt zawierający lokalną informację o dacie.print
wypisze ciąg reprezentujący ten obiekt, wywoła to funkcję obiektu__str__
.Z dokumentów :
date.__str__()
: Dladate
d
,str(d)
jest równoważnad.isoformat()
.date.isoformat()
: Zwracastring
reprezentujący datę w ISO 8601 formatu‘YYYY-MM-DD’
. Na przykładdate(2002, 12, 4).isoformat() == '2002-12-04'
.źródło
import datetime;print datetime.date.today()
jest to tylko 43 bajty i wykorzystuje datetime. Dlaczego usuwana jest jeszcze krótsza wersja?print
). Uratowałem kolejne trzy działania (zło)import*
.print
chwili usunięcia, a następnie usunięcia.Kryształ ,
30 bajtów24 bajty21 bajtów-6 dzięki Nickowi Cliffordowi
-3 od spojrzenia na odpowiedź ślimaka w Ruby
Wypróbuj online!
źródło
%F
. Również miło widzieć Crystal na PPCG!Rdza, 84 bajtów
źródło
C #,
4645 bajtówZapisano bajt dzięki @raznagul.
źródło
Sytem
?System
przestrzeni nazw, ponieważ ciągle robiłem tę samą literówkę ..."yyy-MM-dd"
również będzie działał.Java 8,
2632 bajtyNaprawiono format dzięki Kevin Cruijssen
źródło
()->java.time.LocalDate.now().toString()
. Z drugiej strony możesz grać.toString()
w golfa+""
, więc staje się to()->java.time.LocalDate.now()+""
w sumie ( 32 bajty ).C ++ 14,
143 bajty139 bajtówTimtech zwrócił mi uwagę, że nie potrzebuję wszystkich miejsc
Przetestuj mnie!
źródło
Szybki, 13 bajtów
źródło