import java.util.Date;
import java.util.Calendar;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.List;
class Test {
String startDateString
= "2023-06-01"; String endDateString
= "2023-05-31";
if ((startDateString == null) && (endDateString == null)) {
System.
out.
println("inactive"); }
dateCal.
setTime(new Date()); Date today
= dateCal.
getTime(); String postTerminateOffset
= "-15"; String preTerminateOffset
= "-7,-14,-30,-60"; String dateTimeFormat
= "yyyy-MM-dd";
if (endDateString != null && !endDateString.equals("")) {
int regionTimezoneEODOffsetValue
= Integer.
parseInt("0"); dateCal.setTime(endDate);
dateCal.
add(Calendar.
HOUR, regionTimezoneEODOffsetValue
); endDate = dateCal.getTime();
int postTerminateOffsetValue
= Integer.
parseInt(postTerminateOffset
); dateCal.setTime(endDate);
dateCal.
add(Calendar.
DAY_OF_MONTH, postTerminateOffsetValue
); Date postTerminateDate
= dateCal.
getTime(); if (today.after(postTerminateDate)) {
System.
out.
println("postterminate"); return;
}
if (today.after(endDate)) {
System.
out.
println("terminate"); return;
}
int preTerminateOffsetValue = 0;
List offsetList
= Arrays.
asList(preTerminateOffset.
split(",")); for(int i = 0; i < offsetList.size(); i++) {
preTerminateOffsetValue
= Integer.
parseInt(offsetList.
get(i
).
toString()); dateCal.setTime(endDate);
dateCal.
add(Calendar.
DAY_OF_MONTH, preTerminateOffsetValue
); Date preTerminateDate
= dateCal.
getTime(); if (today.after(preTerminateDate)) {
System.
out.
println("preterminate-" + offsetList.
get(i
)); return;
}
}
}
if (startDateString != null && !startDateString.equals("")) {
}
if (startDate != null) {
if (today.after(startDate)) {
return;
}
if (today.before(startDate)) {
System.
out.
println("onboard"); return;
}
}
System.
out.
println("inactive"); return;
}
}
CiAKCQlpbXBvcnQgamF2YS51dGlsLkRhdGU7CgkJaW1wb3J0IGphdmEudXRpbC5DYWxlbmRhcjsKCQlpbXBvcnQgamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CgkJaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CgkJaW1wb3J0IGphdmEudXRpbC5MaXN0OwpjbGFzcyBUZXN0IHsKCglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uewogICAgICAgIFN0cmluZyBzdGFydERhdGVTdHJpbmcgPSAiMjAyMy0wNi0wMSI7CiAgICAgICAgU3RyaW5nIGVuZERhdGVTdHJpbmcgPSAiMjAyMy0wNS0zMSI7CgkJCgogICAgICAgIGlmICgoc3RhcnREYXRlU3RyaW5nID09IG51bGwpICYmIChlbmREYXRlU3RyaW5nID09IG51bGwpKSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiaW5hY3RpdmUiKTsKICAgICAgICB9CgogICAgICAgIENhbGVuZGFyIGRhdGVDYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOwogICAgICAgIGRhdGVDYWwuc2V0VGltZShuZXcgRGF0ZSgpKTsKICAgICAgICBkYXRlQ2FsLnNldChDYWxlbmRhci5IT1VSX09GX0RBWSwgMjMpOwogICAgICAgIGRhdGVDYWwuc2V0KENhbGVuZGFyLk1JTlVURSwgNTkpOwogICAgICAgIGRhdGVDYWwuc2V0KENhbGVuZGFyLlNFQ09ORCwgNTkpOwogICAgICAgIGRhdGVDYWwuc2V0KENhbGVuZGFyLk1JTExJU0VDT05ELCAwKTsKICAgICAgICBEYXRlIHRvZGF5ID0gZGF0ZUNhbC5nZXRUaW1lKCk7CiAgICAgICAgU3RyaW5nIHBvc3RUZXJtaW5hdGVPZmZzZXQgPSAiLTE1IjsKICAgICAgICBTdHJpbmcgcHJlVGVybWluYXRlT2Zmc2V0ID0gIi03LC0xNCwtMzAsLTYwIjsKICAgICAgICBTdHJpbmcgZGF0ZVRpbWVGb3JtYXQgPSAieXl5eS1NTS1kZCI7CgogICAgICAgIGlmIChlbmREYXRlU3RyaW5nICE9IG51bGwgJiYgIWVuZERhdGVTdHJpbmcuZXF1YWxzKCIiKSkgewogICAgICAgICAgICBEYXRlIGVuZERhdGUgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieXl5eS1NTS1kZCIpLnBhcnNlKGVuZERhdGVTdHJpbmcpOwoKICAgICAgICAgICAgaW50IHJlZ2lvblRpbWV6b25lRU9ET2Zmc2V0VmFsdWUgPSBJbnRlZ2VyLnBhcnNlSW50KCIwIik7CiAgICAgICAgICAgIGRhdGVDYWwuc2V0VGltZShlbmREYXRlKTsKICAgICAgICAgICAgZGF0ZUNhbC5hZGQoQ2FsZW5kYXIuREFZX09GX01PTlRILCAxKTsKICAgICAgICAgICAgZGF0ZUNhbC5hZGQoQ2FsZW5kYXIuSE9VUiwgcmVnaW9uVGltZXpvbmVFT0RPZmZzZXRWYWx1ZSk7CiAgICAgICAgICAgIGVuZERhdGUgPSBkYXRlQ2FsLmdldFRpbWUoKTsKCiAgICAgICAgICAgIGludCBwb3N0VGVybWluYXRlT2Zmc2V0VmFsdWUgPSBJbnRlZ2VyLnBhcnNlSW50KHBvc3RUZXJtaW5hdGVPZmZzZXQpOwogICAgICAgICAgICBkYXRlQ2FsLnNldFRpbWUoZW5kRGF0ZSk7CiAgICAgICAgICAgIGRhdGVDYWwuYWRkKENhbGVuZGFyLkRBWV9PRl9NT05USCwgcG9zdFRlcm1pbmF0ZU9mZnNldFZhbHVlKTsKICAgICAgICAgICAgRGF0ZSBwb3N0VGVybWluYXRlRGF0ZSA9IGRhdGVDYWwuZ2V0VGltZSgpOwogICAgICAgICAgICBpZiAodG9kYXkuYWZ0ZXIocG9zdFRlcm1pbmF0ZURhdGUpKSB7CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInBvc3R0ZXJtaW5hdGUiKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKHRvZGF5LmFmdGVyKGVuZERhdGUpKSB7CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInRlcm1pbmF0ZSIpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpbnQgcHJlVGVybWluYXRlT2Zmc2V0VmFsdWUgPSAwOwogICAgICAgICAgICBMaXN0IG9mZnNldExpc3QgPSBBcnJheXMuYXNMaXN0KHByZVRlcm1pbmF0ZU9mZnNldC5zcGxpdCgiLCIpKTsKICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IG9mZnNldExpc3Quc2l6ZSgpOyBpKyspIHsKICAgICAgICAgICAgICAgIHByZVRlcm1pbmF0ZU9mZnNldFZhbHVlID0gSW50ZWdlci5wYXJzZUludChvZmZzZXRMaXN0LmdldChpKS50b1N0cmluZygpKTsKICAgICAgICAgICAgICAgIGRhdGVDYWwuc2V0VGltZShlbmREYXRlKTsKICAgICAgICAgICAgICAgIGRhdGVDYWwuYWRkKENhbGVuZGFyLkRBWV9PRl9NT05USCwgcHJlVGVybWluYXRlT2Zmc2V0VmFsdWUpOwogICAgICAgICAgICAgICAgRGF0ZSBwcmVUZXJtaW5hdGVEYXRlID0gZGF0ZUNhbC5nZXRUaW1lKCk7CiAgICAgICAgICAgICAgICBpZiAodG9kYXkuYWZ0ZXIocHJlVGVybWluYXRlRGF0ZSkpIHsKICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInByZXRlcm1pbmF0ZS0iICsgb2Zmc2V0TGlzdC5nZXQoaSkpOwoJCQkJCXJldHVybjsgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAJCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgoKICAgICAgICBEYXRlIHN0YXJ0RGF0ZSA9IG51bGw7CiAgICAgICAgaWYgKHN0YXJ0RGF0ZVN0cmluZyAhPSBudWxsICYmICFzdGFydERhdGVTdHJpbmcuZXF1YWxzKCIiKSkgewogICAgICAgICAgICBzdGFydERhdGUgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChkYXRlVGltZUZvcm1hdCkucGFyc2Uoc3RhcnREYXRlU3RyaW5nKTsKICAgICAgICB9CiAgICAgICAgaWYgKHN0YXJ0RGF0ZSAhPSBudWxsKSB7CiAgICAgICAgICAgIGlmICh0b2RheS5hZnRlcihzdGFydERhdGUpKSB7CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImFjdGl2ZSIpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICh0b2RheS5iZWZvcmUoc3RhcnREYXRlKSkgewogICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJvbmJvYXJkIik7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiaW5hY3RpdmUiKTsKICAgICAgICByZXR1cm47Cgl9Cn0KICA=