Quiz

2017/12/11

 会社で教えてもらった問題…を実行して答を見るまでにえらい時間がかかった。classpathなんて嫌いだ。問題はJDK1.4.2でOK。あ、あと秀丸でUTF-16で保存したらJavacコンパイラで文字が判読できないぞエラー…あれ、JavaってUTF-16で保存しないといけないじゃなかったっけ?今はnative2asciiが必ず呼ばれるんだっけ?

import java.util.*;
public class Jan31Test
{
  static String YOUBI[] = { "??","日", "月", "火", "水", "木", "金", "土"};
  public static void main(String[] args) {
    GregorianCalendar gc = new GregorianCalendar();
    gc.set(2006, 1, 31, 0, 0, 0);
    int i = gc.get(Calendar.DAY_OF_WEEK);
    System.out.println(YOUBI[i] + "曜日");
  }
}

 なんでこの答えになるのでしょう?
 (1時間後)あ、わかった。なんでこんな実装にしているんだ。ぷんぷん。ちゅうか、例外出さない実装なのか…。IBMのサイトでも「国際化でもっとも大きな間違い」とか書かれてるし…。
 (夜)そういえば、かすかな記憶をたどってみると、JDK1.0の頃に作ったアプレットで月計算するとき「なんだこりゃー」と思ってJavaが嫌いになった気がする。