Android APIのバグの可能性もあるので、もしそうでしたら、報告する場所教えてください><
(何か賞金とかもらえるなら折半で!)
Calendar使う場合、こういうことをする時があります。
DAY_OF_WEEK
はcalendar オブジェクトが何曜日かというのを指定します。
WEEK_OF_YEAR
WEEK_OF_YEAR
は calendar オブジェクトが一年の何週目(最大52週)というのを指定します。
この2つで、特定の日付を解決します。
(本当は YEAR (年)も設定する必要はありそうですが、なぜかAndroidでは必須ではない。)
一旦 オブジェクトが日曜日 というのを設定します。
さらにcalendar オブジェクトが一年の30週目というのを設定します。
つまり 2013年7月21日というのを設定しています。
なので、ここでは30が出力されます。
しかし、
と書いたら、なぜかWEEK_OF_YEARが反映されずに、
この2つで、特定の日付を解決します。
(本当は YEAR (年)も設定する必要はありそうですが、なぜかAndroidでは必須ではない。)
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
calendar.set(Calendar.WEEK_OF_YEAR, 30);
Log.d("tag", calendar.get(Calendar.WEEK_OF_YEAR) + "");
一旦 オブジェクトが日曜日 というのを設定します。
さらにcalendar オブジェクトが一年の30週目というのを設定します。
つまり 2013年7月21日というのを設定しています。
なので、ここでは30が出力されます。
しかし、
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.WEEK_OF_YEAR, 30);
calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
Log.d("tag", calendar.get(Calendar.WEEK_OF_YEAR) + "");
と書いたら、なぜかWEEK_OF_YEARが反映されずに、
今週(2013年11月6日現在なら45)
が出力されてしまいます。
時間があったら、この問題を追ってみたいと思います。
ちなみに通常の Java(Java 7)ではこの問題は発生しないっぽいです。
参考:
Java API
http://docs.oracle.com/javase/jp/1.5.0/api/java/util/Calendar.html
Android API
http://developer.android.com/reference/java/util/Calendar.html
が出力されてしまいます。
時間があったら、この問題を追ってみたいと思います。
ちなみに通常の Java(Java 7)ではこの問題は発生しないっぽいです。
参考:
Java API
http://docs.oracle.com/javase/jp/1.5.0/api/java/util/Calendar.html
Android API
http://developer.android.com/reference/java/util/Calendar.html