import java.text.*;
import java.lang.*;
import java.util.*;
class Eveniment {
private Date dataInceput, dataSfarsit
; // Primeste 2 stringuri in format yyyy-MM-dd HH:mm:ss reprezentand data si ora
// de inceput si de final a evenimentului si inca un string care contine numele
// cu care apare evenimentul in calendar
try {
this.dataInceput = format.parse(dataInceput);
this.dataSfarsit = format.parse(dataSfarsit);
System.
out.
println("Data nu este in formatul cerut!"); }
this.nume = nume;
}
public Date getDataInceput
() { return dataInceput;
}
public Date getDataSfarsit
() { return dataSfarsit;
}
return nume;
}
}
class EvenimentRecurent extends Eveniment {
private int oreRecurente;
String numeEveniment,
int oreRecurente
) { super(dataInceput, dataSfarsit, numeEveniment);
this.oreRecurente = oreRecurente;
}
try {
dataActuala.setTime(format.parse(dataCurenta));
urmatorulEv.setTime(getDataInceput());
System.
out.
println("Data nu este in formatul cerut!"); }
while (urmatorulEv.before(dataActuala)) {
urmatorulEv.
add(Calendar.
HOUR, oreRecurente
); }
return format.format(urmatorulEv.getTime());
}
}
class prog {
public static void main
(String[] args
) {
EvenimentRecurent er = new EvenimentRecurent("2019-04-19 14:46:23",
"2019-05-09 23:00:00", "Scris probleme", 1000);
System.
out.
println(er.
urmatorulEveniment("2019-04-19 14:46:23")); // // 2019-04-20 22:46:00
// EvenimentRecurent er = new EvenimentRecurent("2019-03-09 22:46:00",
// "2019-03-09 23:00:00", "Scris probleme", 48);
// if (er.urmatorulEveniment("2019-03-8 12:00:00").compareTo("2019-03-09 22:46:00") != 0) {
// System.out.println("NOPE");
}
// 2019-03-09 22:46:00
// }
}
aW1wb3J0IGphdmEudGV4dC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLnV0aWwuKjsKCmNsYXNzIEV2ZW5pbWVudCB7CiAgcHJpdmF0ZSBEYXRlIGRhdGFJbmNlcHV0LCBkYXRhU2ZhcnNpdDsKICBwcml2YXRlIFN0cmluZyBudW1lOwogIC8vIFByaW1lc3RlIDIgc3RyaW5ndXJpIGluIGZvcm1hdCB5eXl5LU1NLWRkIEhIOm1tOnNzIHJlcHJlemVudGFuZCBkYXRhIHNpIG9yYQogIC8vIGRlIGluY2VwdXQgc2kgZGUgZmluYWwgYSBldmVuaW1lbnR1bHVpIHNpIGluY2EgdW4gc3RyaW5nIGNhcmUgY29udGluZSBudW1lbGUKICAvLyBjdSBjYXJlIGFwYXJlIGV2ZW5pbWVudHVsIGluIGNhbGVuZGFyCiAgcHVibGljIEV2ZW5pbWVudChTdHJpbmcgZGF0YUluY2VwdXQsIFN0cmluZyBkYXRhU2ZhcnNpdCwgU3RyaW5nIG51bWUpIHsKICAgIFNpbXBsZURhdGVGb3JtYXQgZm9ybWF0ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoInl5eXktTU0tZGQgSEg6bW06c3MiKTsKICAgIHRyeSB7CiAgICAgIHRoaXMuZGF0YUluY2VwdXQgPSBmb3JtYXQucGFyc2UoZGF0YUluY2VwdXQpOwogICAgICB0aGlzLmRhdGFTZmFyc2l0ID0gZm9ybWF0LnBhcnNlKGRhdGFTZmFyc2l0KTsKICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CiAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRGF0YSBudSBlc3RlIGluIGZvcm1hdHVsIGNlcnV0ISIpOwogICAgfQogICAgdGhpcy5udW1lID0gbnVtZTsKICB9CgogIHB1YmxpYyBEYXRlIGdldERhdGFJbmNlcHV0KCkgewogICAgcmV0dXJuIGRhdGFJbmNlcHV0OwogIH0KCiAgcHVibGljIERhdGUgZ2V0RGF0YVNmYXJzaXQoKSB7CiAgICByZXR1cm4gZGF0YVNmYXJzaXQ7CiAgfQoKICBwdWJsaWMgU3RyaW5nIGdldE51bWUoKSB7CiAgICByZXR1cm4gbnVtZTsKICB9Cn0KCmNsYXNzIEV2ZW5pbWVudFJlY3VyZW50IGV4dGVuZHMgRXZlbmltZW50IHsKICAgIHByaXZhdGUgaW50IG9yZVJlY3VyZW50ZTsKCiAgICBFdmVuaW1lbnRSZWN1cmVudChTdHJpbmcgZGF0YUluY2VwdXQsIFN0cmluZyBkYXRhU2ZhcnNpdCwKICAgICAgICBTdHJpbmcgbnVtZUV2ZW5pbWVudCwgaW50IG9yZVJlY3VyZW50ZSkgewogICAgICAgIHN1cGVyKGRhdGFJbmNlcHV0LCBkYXRhU2ZhcnNpdCwgbnVtZUV2ZW5pbWVudCk7CiAgICAgICAgdGhpcy5vcmVSZWN1cmVudGUgPSBvcmVSZWN1cmVudGU7CiAgICB9CgogICAgcHVibGljIFN0cmluZyB1cm1hdG9ydWxFdmVuaW1lbnQoU3RyaW5nIGRhdGFDdXJlbnRhKSB7CiAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmb3JtYXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieXl5eS1NTS1kZCBISDptbTpzcyIpOwogICAgICAgIENhbGVuZGFyIHVybWF0b3J1bEV2ID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKSwKICAgICAgICAJZGF0YUFjdHVhbGEgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIGRhdGFBY3R1YWxhLnNldFRpbWUoZm9ybWF0LnBhcnNlKGRhdGFDdXJlbnRhKSk7CiAgICAgICAgICAgIHVybWF0b3J1bEV2LnNldFRpbWUoZ2V0RGF0YUluY2VwdXQoKSk7CiAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJEYXRhIG51IGVzdGUgaW4gZm9ybWF0dWwgY2VydXQhIik7CiAgICAgICAgfQogICAgICAgIHdoaWxlICh1cm1hdG9ydWxFdi5iZWZvcmUoZGF0YUFjdHVhbGEpKSB7CiAgICAgICAgICAgIHVybWF0b3J1bEV2LmFkZChDYWxlbmRhci5IT1VSLCBvcmVSZWN1cmVudGUpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZm9ybWF0LmZvcm1hdCh1cm1hdG9ydWxFdi5nZXRUaW1lKCkpOwogICAgfQp9CgpjbGFzcyBwcm9nIHsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgIAkKICAgIAkKRXZlbmltZW50UmVjdXJlbnQgZXIgPSBuZXcgRXZlbmltZW50UmVjdXJlbnQoIjIwMTktMDQtMTkgMTQ6NDY6MjMiLAogICIyMDE5LTA1LTA5IDIzOjAwOjAwIiwgIlNjcmlzIHByb2JsZW1lIiwgMTAwMCk7ClN5c3RlbS5vdXQucHJpbnRsbihlci51cm1hdG9ydWxFdmVuaW1lbnQoIjIwMTktMDQtMTkgMTQ6NDY6MjMiKSk7Ci8vIC8vIDIwMTktMDQtMjAgMjI6NDY6MDAKCi8vIEV2ZW5pbWVudFJlY3VyZW50IGVyID0gbmV3IEV2ZW5pbWVudFJlY3VyZW50KCIyMDE5LTAzLTA5IDIyOjQ2OjAwIiwKLy8gIjIwMTktMDMtMDkgMjM6MDA6MDAiLCAiU2NyaXMgcHJvYmxlbWUiLCA0OCk7Ci8vIGlmIChlci51cm1hdG9ydWxFdmVuaW1lbnQoIjIwMTktMDMtOCAxMjowMDowMCIpLmNvbXBhcmVUbygiMjAxOS0wMy0wOSAyMjo0NjowMCIpICE9IDApIHsKLy8gU3lzdGVtLm91dC5wcmludGxuKCJOT1BFIik7Cn0KLy8gMjAxOS0wMy0wOSAyMjo0NjowMAoKCgoKCgogICAgLy8gfQp9