import java.util.*;
import java.text.*;
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 static int numarOre;
public EvenimentRecurent
(String dataInceput,
String dataSfarsit,
String nume,
int numarOre
){ super(dataInceput, dataSfarsit, nume);
this.numarOre = numarOre;
}
try {
data = form.parse(datadata);
System.
out.
println("Data nu este in formatul cerut!"); }
Date aux
= getDataInceput
(); cal.setTime(aux);
c1.setTime(data);
long seconds = (c1.getTimeInMillis() - cal.getTimeInMillis()) / 1000;
int hours = (int) (seconds / 3600);
double hrs = (seconds/ 3600.0);
int ev = hours / this.numarOre;
cal.
add(Calendar.
HOUR,
(ev
* this.
numarOre)); while (hrs > (ev * this.numarOre)){
++ev;
}
return form.format(cal.getTime());
}
}
class prog {
public static void main
(String[] args
) { EvenimentRecurent er = new EvenimentRecurent("2019-03-09 22:46:00",
"2019-03-09 23:00:00", "Scris probleme", 24);
System.
out.
println(er.
urmatorulEveniment("2019-04-19 22:46:23")); // 2019-04-20 22:46:00
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS50ZXh0Lio7CgpjbGFzcyBFdmVuaW1lbnQgewogICAgcHJpdmF0ZSBEYXRlIGRhdGFJbmNlcHV0LCBkYXRhU2ZhcnNpdDsKICAgIHByaXZhdGUgU3RyaW5nIG51bWU7CiAgICAvLyBQcmltZXN0ZSAyIHN0cmluZ3VyaSBpbiBmb3JtYXQgeXl5eS1NTS1kZCBISDptbTpzcyByZXByZXplbnRhbmQgZGF0YSBzaSBvcmEKICAgIC8vIGRlIGluY2VwdXQgc2kgZGUgZmluYWwgYSBldmVuaW1lbnR1bHVpIHNpIGluY2EgdW4gc3RyaW5nIGNhcmUgY29udGluZSBudW1lbGUKICAgIC8vIGN1IGNhcmUgYXBhcmUgZXZlbmltZW50dWwgaW4gY2FsZW5kYXIKICAgIHB1YmxpYyBFdmVuaW1lbnQoU3RyaW5nIGRhdGFJbmNlcHV0LCBTdHJpbmcgZGF0YVNmYXJzaXQsIFN0cmluZyBudW1lKSB7CiAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmb3JtYXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieXl5eS1NTS1kZCBISDptbTpzcyIpOwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHRoaXMuZGF0YUluY2VwdXQgPSBmb3JtYXQucGFyc2UoZGF0YUluY2VwdXQpOwogICAgICAgICAgICB0aGlzLmRhdGFTZmFyc2l0ID0gZm9ybWF0LnBhcnNlKGRhdGFTZmFyc2l0KTsKICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkRhdGEgbnUgZXN0ZSBpbiBmb3JtYXR1bCBjZXJ1dCEiKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5udW1lID0gbnVtZTsKICAgIH0KCiAgICBwdWJsaWMgRGF0ZSBnZXREYXRhSW5jZXB1dCgpIHsKICAgICAgICByZXR1cm4gZGF0YUluY2VwdXQ7CiAgICB9CgogICAgcHVibGljIERhdGUgZ2V0RGF0YVNmYXJzaXQoKSB7CiAgICAgICAgcmV0dXJuIGRhdGFTZmFyc2l0OwogICAgfQoKICAgIHB1YmxpYyBTdHJpbmcgZ2V0TnVtZSgpIHsKICAgICAgICByZXR1cm4gbnVtZTsKICAgIH0KfQoKY2xhc3MgRXZlbmltZW50UmVjdXJlbnQgZXh0ZW5kcyBFdmVuaW1lbnR7CiAgICBwcml2YXRlIERhdGUgZGF0YTsKICAgIHByaXZhdGUgc3RhdGljIGludCBudW1hck9yZTsKIAogICAgcHVibGljIEV2ZW5pbWVudFJlY3VyZW50KFN0cmluZyBkYXRhSW5jZXB1dCwgU3RyaW5nIGRhdGFTZmFyc2l0LCBTdHJpbmcgbnVtZSwgaW50IG51bWFyT3JlKXsKICAgICAgICBzdXBlcihkYXRhSW5jZXB1dCwgZGF0YVNmYXJzaXQsIG51bWUpOwogICAgICAgIHRoaXMubnVtYXJPcmUgPSBudW1hck9yZTsKICAgIH0KIAogICAgcHVibGljIFN0cmluZyB1cm1hdG9ydWxFdmVuaW1lbnQoU3RyaW5nIGRhdGFkYXRhKXsKICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZvcm0gPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieXl5eS1NTS1kZCBISDptbTpzcyIpOwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIGRhdGEgPSBmb3JtLnBhcnNlKGRhdGFkYXRhKTsKICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkRhdGEgbnUgZXN0ZSBpbiBmb3JtYXR1bCBjZXJ1dCEiKTsKICAgICAgICB9CiAgICAgICAgRGF0ZSBhdXggPSBnZXREYXRhSW5jZXB1dCgpOyAKICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOwogICAgICAgIGNhbC5zZXRUaW1lKGF1eCk7CiAgICAgICAgQ2FsZW5kYXIgYzEgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOwogICAgICAgIGMxLnNldFRpbWUoZGF0YSk7CiAgICAgICAgbG9uZyBzZWNvbmRzID0gKGMxLmdldFRpbWVJbk1pbGxpcygpIC0gY2FsLmdldFRpbWVJbk1pbGxpcygpKSAvIDEwMDA7CiAgICAgICAgaW50IGhvdXJzID0gKGludCkgKHNlY29uZHMgLyAzNjAwKTsKICAgICAgICBkb3VibGUgaHJzID0gKHNlY29uZHMvIDM2MDAuMCk7CiAgICAgICAgaW50IGV2ID0gaG91cnMgLyB0aGlzLm51bWFyT3JlOwogICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuSE9VUiwgKGV2ICogdGhpcy5udW1hck9yZSkpOwogICAgICAgIHdoaWxlIChocnMgPiAoZXYgKiB0aGlzLm51bWFyT3JlKSl7CiAgICAgICAgCWNhbC5hZGQoQ2FsZW5kYXIuSE9VUiwgdGhpcy5udW1hck9yZSk7CiAgICAgICAgCSsrZXY7CiAgICAgICAgfQogICAgICAgIHJldHVybiBmb3JtLmZvcm1hdChjYWwuZ2V0VGltZSgpKTsKICAgIH0KfQoKY2xhc3MgcHJvZyB7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgRXZlbmltZW50UmVjdXJlbnQgZXIgPSBuZXcgRXZlbmltZW50UmVjdXJlbnQoIjIwMTktMDMtMDkgMjI6NDY6MDAiLAogICAgICAgICAgICAgICAgIjIwMTktMDMtMDkgMjM6MDA6MDAiLCAiU2NyaXMgcHJvYmxlbWUiLCAyNCk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGVyLnVybWF0b3J1bEV2ZW5pbWVudCgiMjAxOS0wNC0xOSAyMjo0NjoyMyIpKTsKICAgICAgICAvLyAyMDE5LTA0LTIwIDIyOjQ2OjAwCiAgICB9Cn0=