年の何週目は、WeekFields の weekOfWeekBasedYear で、

今更ではあるが、Java で、年初(1月1日)から何週目かを求める機会が今まであまりなくて
メモ。
注意すべきは、この週の数え方で、週は、日曜が週の開始であることです。
でも、Java の DayOfWeek 列挙型は、 1 =(月曜日) ~ 7 =(日曜日) です。

LocalDate today = LocalDate.now();
int weekOfyear = LocalDate.now().get(WeekFields.of(Locale.JAPANESE).weekOfWeekBasedYear());
int weekOfmonth = today.get(WeekFields.of(Locale.JAPANESE).weekOfMonth());

System.out.println("年→第 " + weekOfyear   + " 週");
System.out.println("月→第 " + weekOfmonth  + " 週");

System.out.println( LocalDate.now().getDayOfWeek() );
System.out.println( LocalDate.now().getDayOfWeek().getValue() ); /* 1 (月曜日)から7 (日曜日) */
System.out.println( LocalDate.now().getDayOfWeek().getDisplayName(TextStyle.SHORT, Locale.JAPAN) );
System.out.println( LocalDate.now().getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.JAPAN) );

2018年7月7日 は、第 27 週です。
2018年7月7日に上のコードを実行すると、

年→第 27 週
月→第 1 週
SATURDAY
6
土
土曜日

LocalDate.now().getDayOfWeek().getDisplayName(TextStyle.SHORT, Locale.JAPAN)
とか、方法あったのですね。
Java 8 になるまでに古い Java では、曜日配列定義して該当曜日を参照なんて書きたくもないコードをよく見かけました。

JavaScript では、、
moment.js を使えば、年初(1月1日)から何週目かを求めることができます。

var m = moment();
var weekOfyear  =  m.week();

JavaScript で、月の何週目かは、直接 Dateオブジェクトから計算します。

var today = new Date();
var n = Math.floor((today.getDate() - today.getDay() + 12 ) / 7);

また、Java に戻って、、ついでなので、ちょっと遊んで。。。

// 月の第何週でグルーピングした日付のリスト(Collectors.toMap で)
Map<Integer, List<LocalDate>> map1 =
Stream.iterate(LocalDate.of(today.getYear(), today.getMonthValue(), 1), e->e.plusDays(1))
.limit(today.lengthOfMonth())
.collect(Collectors.toMap(e->e.get(WeekFields.of(Locale.JAPANESE).weekOfMonth())
  , u->new ArrayList<LocalDate>(Collections.singletonList(u))
  , (List<LocalDate> u1, List<LocalDate> u2)->Stream.concat(u1.stream(), u2.stream()).collect(Collectors.toList())
));

// 月の第何週でグルーピングした日付のリスト(Collectors.groupingBy で)
Map<Integer, List<LocalDate>> map2 =
Stream.iterate(LocalDate.of(today.getYear(), today.getMonthValue(), 1), e->e.plusDays(1))
.limit(today.lengthOfMonth())
.collect(Collectors.groupingBy(
  t->t.get(WeekFields.of(Locale.JAPANESE).weekOfMonth()), Collectors.mapping(u->u, Collectors.toList()))
);

// 月の第何週でグルーピングして、日(Day) が偶数のカウント
Map<Integer, Integer> map3 =
Stream.iterate(LocalDate.of(today.getYear(), today.getMonthValue(), 1), e->e.plusDays(1))
.limit(today.lengthOfMonth())
.collect(Collectors.groupingBy(
  t->t.get(WeekFields.of(Locale.JAPANESE).weekOfMonth()), Collectors.mapping(u->{
    return u.getDayOfMonth() % 2 == 0 ? 1 : 0;
  }, Collectors.summingInt(t->t) ))
);