code: public LocalDate atDay(DayOfWeek dayOfWeek) {
          Objects.requireNonNull(dayOfWeek, "dayOfWeek");
          int correction = LocalDate.of(year, 1, 4).getDayOfWeek().getValue() + 3;
          int dayOfYear = week * 7 + dayOfWeek.getValue() - correction;
          int maxDaysOfYear = Year.isLeap(year) ? 366 : 365;
          if (dayOfYear > maxDaysOfYear) {
              return LocalDate.ofYearDay(year + 1, dayOfYear - maxDaysOfYear);
          }
          if (dayOfYear > 0) {
              return LocalDate.ofYearDay(year, dayOfYear);
          } else {
              int daysOfPreviousYear = Year.isLeap(year - 1) ? 366 : 365;
              return LocalDate.ofYearDay(year - 1, daysOfPreviousYear + dayOfYear);
          }
      }
docs: Combines this year-week with a day-of-week to create a {@code LocalDate}.
  <p>
  This returns a {@code LocalDate} formed from this year-week and the specified day-of-Week.
  <p>
  This method can be used as part of a chain to produce a date:
  <pre>
  LocalDate date = yearWeek.atDay(MONDAY);
  </pre>
  
  @param dayOfWeek  the day-of-week to use, not null
  @return the date formed from this year-week and the specified day, not null