import java.time.LocalDate;
import java.time.Month;
import java.time.temporal.WeekFields;
import java.util.Locale;
class Main {
public static void main
(String[] args
) { // Sample dates
LocalDate[] dates = {
LocalDate.of(2015, Month.DECEMBER, 31),
LocalDate.of(2016, Month.JANUARY, 1)
};
// Sample locales
};
for (LocalDate date : dates) {
for (Locale locale
: locales
) { "%s => %s, Week-based year: %d, Week of week-based year: %d%n",
locale.getCountry(),
date,
getWeekBasedYear(date, locale),
getWeekOfWeekBasedYear(date, locale));
}
}
}
static private int getWeekBasedYear
(LocalDate date,
Locale locale
) { return date.get(WeekFields.of(locale).weekBasedYear());
}
static private int getWeekOfWeekBasedYear
(LocalDate date,
Locale locale
) { return date.get(WeekFields.of(locale).weekOfWeekBasedYear());
}
}
aW1wb3J0IGphdmEudGltZS5Mb2NhbERhdGU7CmltcG9ydCBqYXZhLnRpbWUuTW9udGg7CmltcG9ydCBqYXZhLnRpbWUudGVtcG9yYWwuV2Vla0ZpZWxkczsKaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CgpjbGFzcyBNYWluIHsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKCQkvLyBTYW1wbGUgZGF0ZXMKCQlMb2NhbERhdGVbXSBkYXRlcyA9IHsKCQkJCUxvY2FsRGF0ZS5vZigyMDE1LCBNb250aC5ERUNFTUJFUiwgMzEpLAoJCQkJTG9jYWxEYXRlLm9mKDIwMTYsIE1vbnRoLkpBTlVBUlksIDEpCgkJfTsKCgkJLy8gU2FtcGxlIGxvY2FsZXMKCQlMb2NhbGVbXSBsb2NhbGVzID0gewoJCQkJTG9jYWxlLlVTLAoJCQkJTG9jYWxlLkdFUk1BTlkKCQl9OwoKCQlmb3IgKExvY2FsRGF0ZSBkYXRlIDogZGF0ZXMpIHsKCQkJZm9yIChMb2NhbGUgbG9jYWxlIDogbG9jYWxlcykgewoJCQkJU3lzdGVtLm91dC5wcmludGYoCgkJCQkJCSIlcyA9PiAlcywgV2Vlay1iYXNlZCB5ZWFyOiAlZCwgV2VlayBvZiB3ZWVrLWJhc2VkIHllYXI6ICVkJW4iLAoJCQkJCQlsb2NhbGUuZ2V0Q291bnRyeSgpLAoJCQkJCQlkYXRlLAoJCQkJCQlnZXRXZWVrQmFzZWRZZWFyKGRhdGUsIGxvY2FsZSksCgkJCQkJCWdldFdlZWtPZldlZWtCYXNlZFllYXIoZGF0ZSwgbG9jYWxlKSk7CgkJCX0KCQl9Cgl9CgoJc3RhdGljIHByaXZhdGUgaW50IGdldFdlZWtCYXNlZFllYXIoTG9jYWxEYXRlIGRhdGUsIExvY2FsZSBsb2NhbGUpIHsKCQlyZXR1cm4gZGF0ZS5nZXQoV2Vla0ZpZWxkcy5vZihsb2NhbGUpLndlZWtCYXNlZFllYXIoKSk7Cgl9CgoJc3RhdGljIHByaXZhdGUgaW50IGdldFdlZWtPZldlZWtCYXNlZFllYXIoTG9jYWxEYXRlIGRhdGUsIExvY2FsZSBsb2NhbGUpIHsKCQlyZXR1cm4gZGF0ZS5nZXQoV2Vla0ZpZWxkcy5vZihsb2NhbGUpLndlZWtPZldlZWtCYXNlZFllYXIoKSk7Cgl9Cn0=
US => 2015-12-31, Week-based year: 2016, Week of week-based year: 1
DE => 2015-12-31, Week-based year: 2015, Week of week-based year: 53
US => 2016-01-01, Week-based year: 2016, Week of week-based year: 1
DE => 2016-01-01, Week-based year: 2015, Week of week-based year: 53