下記のような書き方ができる。
dt.withDayOfWeek(DateTimeConstants.SUNDAY)
dtが左だった場合、右に変換される。
7/26(Sun) → 7/27(Sun)
7/27(Sun) → 7/27(Sun)
7/28(Mon) → 8/03(Sun)
7/29(Tue) → 8/03(Sun)
前回の日曜日を取りたい、つまり7/28(Sun)なら7/27(Sun)を取りたい場合はどうするか。とりあえず1週減らして取ればいいか。
dt.minusWeeks(1).withDayOfWeek(DateTimeConstants.SUNDAY)
この場合、7/27(Sun)は7/20(Sun)になる。7/27→7/27にしたい場合は、6日減らす感じだろうか。
dt.minusDays(6).withDayOfWeek(DateTimeConstants.SUNDAY)
Java8のTime APIの場合はwithでTemporalAdjusters使うなど書き方が違う。けっこう面倒。