JavaのDateクラスは廃止されたので使う頻度はかなり減りましたが、使ってみると1900年を引いて現在の年を表示するのでイライラすることもあると思いました。次のように、 CalendarクラスとそのサブクラスであるGregorianCalendarがシステムによって維持されている正確な年を返すときに、設計者は実際に何を感じ、そのようなメカニズムを課すべきでしたか?
public class Main
{
public static void main(String[] args)
{
Date d=new Date();
System.out.println("Day : "+d.getDate()+" Month : "+d.getMonth()
+" Year : "+d.getYear());
Calendar c=Calendar.getInstance();
System.out.println("Day : "+c.get(Calendar.DATE)+" Month :
"+c.get(Calendar.MONTH)+" Year : "+c.get(Calendar.YEAR));
}
}
以下に示すような出力、現在の日、月、年が表示されます。
日 : 1 月 : 10 年 : 111
日 : 1 月 : 10 年 : 2011
2011ではなく111を表示することについて、デザイナーはどう思うでしょうか?