会社で教えてもらった問題…を実行して答を見るまでにえらい時間がかかった。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が嫌いになった気がする。