2000/10/30

| コメント(0) | トラックバック(0)

なんだかものすごくよく眠れる。病気?

夕方出勤。マシンを起動したら、またしてもICQが自動起動してる。しつこいなあ。レジストリから消してしまう。これでダイジョウブだろう。思い切ってアンインストールしないのは貧乏症だから。

Calendarクラスを(というかこの日記のテンプレート生成クラスを)いじってて、ハマったこと:

static String[] mons = {
"Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
};
public static void main(String[] args) {
try {
GregorianCalendar cal = new GregorianCalendar();
if (args.length >= 1) {
for (int i = 0; i < mons.length; i++) {
if (mons[i].equalsIgnoreCase(args[0])) {
cal.set(cal.MONTH, i);
break;
}
}
...

と書いて、args[0]に11を入れたら、どうしても cal が12月 (cal.get(cal.MONTH)が11) になる。なんでだろーとシバラク悩んだ。原因は、これを実行した日が10月31日だったから。GregorianCalendarのデフォルト・コンストラクタはその日のカレンダーを作成するんだけど、これに11月を指定した11月31日が正規化されて12月1日になってたのだ。むかーし同じようなバグ入りコードを書いたことがあった気がするけど(その時はDate#getMonth()が0〜11ということすら知らなくてもっと長引いた)、また同じような罠にはまるとわ。進歩がないねえ。

トラックバック(0)

トラックバックURL: http://www.septigram.jp/mt/mt-tb.cgi/167

コメントする

月別 アーカイブ

ウェブページ

Powered by Movable Type 5.04

このブログ記事について

このページは、wyvernが2000年10月30日 00:00に書いたブログ記事です。

ひとつ前のブログ記事は「2000/10/29」です。

次のブログ記事は「2000/10/31」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。