如果键入蹊跷DateString在数学
DateString[{2011, 2, 29, 0, 0, 0}, {"DayName"}]
它给"Tuesday"
。
而且也
DateString[{2011, 2, 29, 0, 0, 0}, {"DayName"}]
DateString[{2011, 3, 1, 0, 0, 0}, {"DayName"}]
如果键入蹊跷DateString在数学
DateString[{2011, 2, 29, 0, 0, 0}, {"DayName"}]
它给"Tuesday"
。
而且也
DateString[{2011, 2, 29, 0, 0, 0}, {"DayName"}]
DateString[{2011, 3, 1, 0, 0, 0}, {"DayName"}]
Needs["Calendar`"];
myDay[x_List] := DateString[x, {"DayName"}] /; DateQ[x]
myDay[{2000, 1, 1}]
->"Saturday"
myDay[{2000, 13, 13}]
->myDay[{2000, 13, 13}]
当然,你可能会抛出消息(或中止[],或者别的什么),如果你想:
Needs["Calendar`"];
[email protected];
myDay[x_] /; If[DateQ[x], True, Message[myDay::nodate, x]; False] :=
DateString[x, {"DayName"}]
myDay::nodate = "The argument `1` is not a valid date.";
这看起来对我来说,正确的行为。 DateString
的文档说:“m,d,h,m,s在正常范围之外的值可以适当减小。”这就是发生的事情:今年二月二十九日并不是真的,但如果有的话,实际上是三月一号的那一天,实际上是星期二。
我宁愿有一些例外抛出,而不是让这个误导'”星期二“回答!我怎样才能写我自己的包装版本的DateString来实现这一目标?非常感谢。 – 2011-03-15 02:09:25
该文档还给出了[示例](http://reference.wolfram.com/mathematica/ref/DateString.html#47250627)DateString [{2006,2,3}]'=>'2006年3月3日星期五:00:00'。 – WReach 2011-03-15 02:19:15
您可以将一个日期列表提供给'DateList'函数,该函数将“将日期列表转换为标准规范化形式”。所以如果这样做的话日期清单是完好无损的。如果情况并非如此,你可以抛出异常。 – 2011-03-15 03:00:48