import java.time.DayOfWeek;
import java.time.ZonedDateTime;
import java.time.temporal.TemporalAdjusters;
public class Main {
public static void main
(String[] args
) { // Test
System.
out.
println(whichDowOfTheMonth
("2021-06-10T13:30:30+03:00")); System.
out.
println(whichDowOfTheMonth
("2021-06-17T13:30:30+03:00")); System.
out.
println(whichDowOfTheMonth
("2021-06-24T13:30:30+03:00")); }
static int whichDowOfTheMonth
(String strDateTime
) { ZonedDateTime zdt = ZonedDateTime.parse(strDateTime);
DayOfWeek dow = zdt.getDayOfWeek();
ZonedDateTime zdtFirstDowOfMonth = zdt.with(TemporalAdjusters.firstInMonth(dow));
ZonedDateTime zdtLastDayOfMonth = zdt.with(TemporalAdjusters.lastDayOfMonth());
int count = 1;
for (ZonedDateTime date = zdtFirstDowOfMonth; !date.isAfter(zdtLastDayOfMonth); date = date.plusDays(7)) {
if (date.equals(zdt))
break;
count++;
}
return count;
}
}
aW1wb3J0IGphdmEudGltZS5EYXlPZldlZWs7CmltcG9ydCBqYXZhLnRpbWUuWm9uZWREYXRlVGltZTsKaW1wb3J0IGphdmEudGltZS50ZW1wb3JhbC5UZW1wb3JhbEFkanVzdGVyczsKCnB1YmxpYyBjbGFzcyBNYWluIHsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKCQkvLyBUZXN0CgkJU3lzdGVtLm91dC5wcmludGxuKHdoaWNoRG93T2ZUaGVNb250aCgiMjAyMS0wNi0xMFQxMzozMDozMCswMzowMCIpKTsKCQlTeXN0ZW0ub3V0LnByaW50bG4od2hpY2hEb3dPZlRoZU1vbnRoKCIyMDIxLTA2LTE3VDEzOjMwOjMwKzAzOjAwIikpOwoJCVN5c3RlbS5vdXQucHJpbnRsbih3aGljaERvd09mVGhlTW9udGgoIjIwMjEtMDYtMjRUMTM6MzA6MzArMDM6MDAiKSk7Cgl9CgoJc3RhdGljIGludCB3aGljaERvd09mVGhlTW9udGgoU3RyaW5nIHN0ckRhdGVUaW1lKSB7CgkJWm9uZWREYXRlVGltZSB6ZHQgPSBab25lZERhdGVUaW1lLnBhcnNlKHN0ckRhdGVUaW1lKTsKCQlEYXlPZldlZWsgZG93ID0gemR0LmdldERheU9mV2VlaygpOwoKCQlab25lZERhdGVUaW1lIHpkdEZpcnN0RG93T2ZNb250aCA9IHpkdC53aXRoKFRlbXBvcmFsQWRqdXN0ZXJzLmZpcnN0SW5Nb250aChkb3cpKTsKCQlab25lZERhdGVUaW1lIHpkdExhc3REYXlPZk1vbnRoID0gemR0LndpdGgoVGVtcG9yYWxBZGp1c3RlcnMubGFzdERheU9mTW9udGgoKSk7CgoJCWludCBjb3VudCA9IDE7CgkJZm9yIChab25lZERhdGVUaW1lIGRhdGUgPSB6ZHRGaXJzdERvd09mTW9udGg7ICFkYXRlLmlzQWZ0ZXIoemR0TGFzdERheU9mTW9udGgpOyBkYXRlID0gZGF0ZS5wbHVzRGF5cyg3KSkgewoJCQlpZiAoZGF0ZS5lcXVhbHMoemR0KSkKCQkJCWJyZWFrOwoJCQljb3VudCsrOwoJCX0KCQlyZXR1cm4gY291bnQ7Cgl9Cn0=