我正在尝试为Class Date或Class DateAndTime的对象找到一个预定义的方法,它允许我通过提供三个整数来创建一个新的Date(或一个新的DateAndTime):一个月的一个整数(1-31);一个月(1 - 12);和一年四位数的整数。
(我到目前为止找到的最接近的是整数>> asYear)
是否有可以一次设置所有三个参数的方法?
答案 0 :(得分:3)
如果我理解正确,您正尝试从代表所述日期的Date
,day
和month
的三个整数创建year
的实例。
当遇到这样的问题时,您可以浏览本课程Date
,并查看instance creation
方法的协议。在Pharo中,这个类别有几种方法,但很容易看到(我认为)#year:month:day
看起来像个好人。所以,你可以尝试一下。只需评估表达式
Date year: 2015 month: 12 day: 31
看看会发生什么(你可以检查或打印它以查看结果)。
您还会发现#newDay:month:year
是另一个好人选。你也可以尝试一下。或者您可以看到它发送我们之前的消息,因此它只是一个同义词(与支持Smalltalk-80 / ANSI规范的其他方言兼容)。
答案 1 :(得分:0)
的字符串>> asDate
允许将日期格式的字符串转换为日期
e.g。 (在工作区中)
aDateString := String new . " prints as '' "
aDateString := '1984-11-03' . " prints as '1984-11-03' "
aDate := Date new . " prints as 1 January 1901 "
aDate := aDateString asDate . "prints as 3 November 1984"
String>> asDate方法中的注释声明"许多允许的表单,请参阅日期>> #readFrom:"
日期>> readFrom:说
"Read a Date from the stream in any of the forms:
<day> <month> <year> (15 April 1982; 15-APR-82; 15.4.82; 15APR82)
<month> <day> <year> (April 15, 1982; 4/15/82)
<year>-<month>-<day> (1982-04-15) (ISO8601)"
还相关:字符串&gt;&gt; asDateAndTime
n.b。 DateAndTime对象是一个确切的时刻。
日期,年,月,周和时间表都是类Timespan的子类,因此它们都有开始时刻,持续时间和结束时刻。