24239


タイムゾーンや年、月は任意であるとします。

週番号と曜日をセットして日付を取得したいのです。  
できる限りjava.timeのAPIを利用したいと考えております。

どなたかご存知の方がおられましたらご教授いただけると幸いです。


CC BY-SA 3.0
2016-04-22T00:36:30.783
24234
2016-05-26T00:49:14.517
2016-05-26T00:49:14.517
2278
2278
question
java java8
java.time を使って、第何週の何曜日は何日か？という実装をしたい。


Javaで週番号を扱われるのなら、国や州(と分野)によって、週番号のルールが異なるあたりのことはご存知かと思いますので、とりあえずISO-8601の週番号として、`java.time.LocalDate`を使った場合、こんな感じになるようです。

[code]

        WeekFields wf = WeekFields.ISO;
        LocalDate ld = LocalDate.now()
                .with(wf.weekBasedYear(), 2016) //2016週年次の
                .with(wf.weekOfWeekBasedYear(), 10) //第10週の
                .with(wf.dayOfWeek(), DayOfWeek.WEDNESDAY.getValue()); //水曜日
        System.out.println(ld); //->2016-03-09
    
[/code]

`WeekFields`インスタンスをどう構成するかで、ある程度いろいろな週番号ルールに対応できるようですが、どの程度まで適用可能かは調べていません。`GregorianCalendar`クラスを使う場合に比べて情報が少ないですね。上のコードもクラスリファレンスだけを頼りに書いて、「一応動いた」ことだけ確認したものです。


CC BY-SA 3.0
2016-04-22T02:34:50.167
24239
2016-04-22T02:34:50.167
13972
24234
answer