挑战
奇怪的是,这还没有完成:输出当前日期。
规则
您应遵循的日期格式如下:
YYYY-MM-DD
如果月份和日期小于10,则该月份和日期应以零填充。
例如,如果程序在2017年5月24日运行,则应输出
2017-05-24
该日期可以始终为UTC或本地日期。
您必须应对leap年。例如,在leap年中,二月有29天,但在正常年份中有28天。
获奖
以字节为单位的最短代码获胜。
奇怪的是,这还没有完成:输出当前日期。
您应遵循的日期格式如下:
YYYY-MM-DD
如果月份和日期小于10,则该月份和日期应以零填充。
例如,如果程序在2017年5月24日运行,则应输出
2017-05-24
该日期可以始终为UTC或本地日期。
您必须应对leap年。例如,在leap年中,二月有29天,但在正常年份中有28天。
以字节为单位的最短代码获胜。
Answers:
echo $(...)
呢?
echo
,也至少echo `date +%F`
。
-I
?
_=>new Date().toJSON().split`T`[0]
f=
_=>new Date().toJSON().split`T`[0]
console.log(f());
_=>new Date().toJSON().slice(0,10)
=TEXT(NOW(),"yyy-mm-dd")
Excel仍将只用3来表示4位数字的年份y
。
")
。Excel不会。它会添加)
上结束,但只提示你之后,因此将需要更多的用户输入,并再次带动了比分。除非我们默认允许使用ISO日期格式进行区域设置,否则24字节可能是Excel的最短答案,这值得争论。
sys.date
已经是一个函数,您不必添加()
,所以它只有8个字节:)
Sys.Date
是一个函数,因此足以作为解决方案。无需显式调用它。
Sys.Date
您完成输出。这类似于您拥有以开头的解决方案时function(x)
,也不会以显式调用结尾。这就是内置分数的评分方式。
/oT\
@%;'
我将把确切的控制流程留给读者做练习,但是在Ordinal模式下运行的线性化代码是:
%T'T%;o@
这是它的作用:
% Split an implicit empty string around an implicit empty string. Really doesn't
do anything at all.
T Push the current datetime as a string like "2017-05-24T20:53:08.150+00:00"
'T Push "T".
% Split the datetime string around the "T", to separate the date from the time.
; Discard the time.
o Output the date.
@ Terminate the program.
一种可行的方法是重用,%
以在Cardinal模式下以零除终止程序,但是我想出的唯一布局如下:
\;T
\%o'
但是在这里,%
实际上并没有终止程序,因为我们'o
提前按了111(),所以永远不会除以零。
原则上,也可以重用%
以摆脱;
,因为尝试在时间周围分割日期只会浪费时间。
不可预测,取决于系统短日期设置?Date
?Format(Now,"yyyy-mm-dd")
2017-05-25
. The default format for this is
M / D / YYYY`,因此此Date
函数的输出为5/25/2017
。要纠正此问题,您的答案将需要包装在Format
电话中。
?format(now,"yyyy-mm-dd")
使用now
date
B=_D?_sB,-4|+@-`+_sB,2|+A+_sB,4,2
说明:
B=_D Assign the system's date to B$
This is in American mm-dd-yyyy format, so we'll need to do some reformatting
?_sB,-4| PRINT substring B, take 4 chars from the right
+@-` plus the string literal "-", now A$
+_sB,2| plus the leftmost two chars
+A and A$ again
+_sB,4,2 plus the middle part.
et3<{sY0e[}%'-*
-7个字节,感谢Challenger5。
说明:
et Get array with [year,month,day,stuff...]
3< Slice array to get [y,m,d]
{ For each item do:
s To string
Y0e[ add a 0 to the beginning of the string if it is shorter than 2 chars.
}% End for each
'-* Join the array with "-" as a separator
e[
(填充数组)15个字节:et3<{sY0e[}%'-*
Date -f yyy-MM-dd
感谢@ConnorLSW提供了9个字节。
date -f 'yyyy-MM-dd'
-10字节归功于GáborFekete(ISO-8601是日期对象的默认格式)
from datetime import*
print date.today()
datetime.date.today()
将返回一个datetime.date
包含本地日期信息的对象。
print
将打印该对象的字符串表示形式,这将调用该对象的__str__
函数。
从文档:
date.__str__()
:对于date
d
,str(d)
等于d.isoformat()
。
date.isoformat()
:string
以ISO 8601格式返回代表日期的‘YYYY-MM-DD’
。例如,date(2002, 12, 4).isoformat() == '2002-12-04'
。
import datetime;print datetime.date.today()
这只有43个字节,使用datetime。为什么删除更短的版本?
print
)。拯救了另外三个人(邪恶)import*
。
print
一会儿删除然后取消删除的内容。
_=>System.DateTime.Now.ToString("yyy-MM-dd");
感谢@raznagul,节省了一个字节。
Sytem
?
System
命名空间创建的自定义包装程序,因为我一直在做相同的错字...
"yyy-MM-dd"
也将起作用。
()->java.time.LocalDate.now()+""
固定格式感谢Kevin Cruijssen
()->java.time.LocalDate.now().toString()
改为。再一次,您可以打高尔夫球.toString()
到+""
,因此()->java.time.LocalDate.now()+""
总数变为32个字节。
#include <cstdio>
#include <time.h>
int main (){time_t t;char D[11];time(&t);strftime(D,sizeof D,"%Y-%m-%d",localtime(&t));printf("%s",D);}
Timtech向我指出,我不需要所有空间
print(Date())