import java.time.LocalDate;
import java.time.Year;
import java.time.temporal.WeekFields;
import java.util.Locale;
public class Main {
public static void main
(String[] args
) { // Test
int weekNumber = 34;
System.
out.
printf("%s - %s%n", getFirstDayOfWeek
(weekNumber,
Locale.
UK),
getLastDayOfWeek
(weekNumber,
Locale.
UK)); System.
out.
printf("%s - %s%n", getFirstDayOfWeek
(weekNumber,
Locale.
US),
getLastDayOfWeek
(weekNumber,
Locale.
US)); }
static LocalDate getFirstDayOfWeek
(int weekNumber,
Locale locale
) { return LocalDate
.of(Year.now().getValue(), 2, 1)
.with(WeekFields.of(locale).getFirstDayOfWeek())
.with(WeekFields.of(locale).weekOfWeekBasedYear(), weekNumber);
}
static LocalDate getLastDayOfWeek
(int weekNumber,
Locale locale
) { return getFirstDayOfWeek(weekNumber, locale).plusDays(6);
}
}
aW1wb3J0IGphdmEudGltZS5Mb2NhbERhdGU7CmltcG9ydCBqYXZhLnRpbWUuWWVhcjsKaW1wb3J0IGphdmEudGltZS50ZW1wb3JhbC5XZWVrRmllbGRzOwppbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKCnB1YmxpYyBjbGFzcyBNYWluIHsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKCQkvLyBUZXN0CgkJaW50IHdlZWtOdW1iZXIgPSAzNDsKCQlTeXN0ZW0ub3V0LnByaW50ZigiJXMgLSAlcyVuIiwgZ2V0Rmlyc3REYXlPZldlZWsod2Vla051bWJlciwgTG9jYWxlLlVLKSwKCQkJCWdldExhc3REYXlPZldlZWsod2Vla051bWJlciwgTG9jYWxlLlVLKSk7CgkJU3lzdGVtLm91dC5wcmludGYoIiVzIC0gJXMlbiIsIGdldEZpcnN0RGF5T2ZXZWVrKHdlZWtOdW1iZXIsIExvY2FsZS5VUyksCgkJCQlnZXRMYXN0RGF5T2ZXZWVrKHdlZWtOdW1iZXIsIExvY2FsZS5VUykpOwoJfQoKCXN0YXRpYyBMb2NhbERhdGUgZ2V0Rmlyc3REYXlPZldlZWsoaW50IHdlZWtOdW1iZXIsIExvY2FsZSBsb2NhbGUpIHsKCQlyZXR1cm4gTG9jYWxEYXRlCgkJCQkub2YoWWVhci5ub3coKS5nZXRWYWx1ZSgpLCAyLCAxKQogICAgICAgICAgICAgICAgLndpdGgoV2Vla0ZpZWxkcy5vZihsb2NhbGUpLmdldEZpcnN0RGF5T2ZXZWVrKCkpCiAgICAgICAgICAgICAgICAud2l0aChXZWVrRmllbGRzLm9mKGxvY2FsZSkud2Vla09mV2Vla0Jhc2VkWWVhcigpLCB3ZWVrTnVtYmVyKTsKCX0KCglzdGF0aWMgTG9jYWxEYXRlIGdldExhc3REYXlPZldlZWsoaW50IHdlZWtOdW1iZXIsIExvY2FsZSBsb2NhbGUpIHsKCQlyZXR1cm4gZ2V0Rmlyc3REYXlPZldlZWsod2Vla051bWJlciwgbG9jYWxlKS5wbHVzRGF5cyg2KTsKCX0KfQ==