import java.util.*;
import java.text.*;
class Eveniment {
private Date dataInceput, dataSfarsit
; 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
(); /*DecimalFormat crunchifyFormatter = new DecimalFormat("###,###");
long diff = data.getTime() - aux.getTime();
int diffsec = (int) (diff / (1000));//diferenta in secunde dintre cele doua date
double hoursec = diffsec / 3600.0;//convertirea diferentei din secunde in ore
int diffhours = (int) (diff / (60 * 60 * 1000));//diferenta in ore dintre cele doua date
int ev = diffhours / this.numarOre;*/
cal.setTime(aux);//vriabila cal de tip Calendar preia valoarea datei de inceput
//cal.add(Calendar.HOUR, (ev * this.numarOre));//am adaugat la data de inceput multimpul numarului de ore la care se repeta evenimentul
c1.setTime(data);
//if (hoursec > (ev * this.numarOre)){// in cazul in care numarul total de ore dintre data de inceput si data din urmatorulEveniment
//e mai mare decat ec * this.numarOre mai adaug numarul de ore inca o data
// cal.add(Calendar.HOUR, this.numarOre);
//}*/
long seconds = (c1.getTimeInMillis() - cal.getTimeInMillis()) / 1000;
int hours = (int) (seconds / 3600);
//return form.format(cal.getTime());//am convertit data Calendar intr-un string
return datadata;
}
}
class prog {
public static void main
(String[] args
) { EvenimentRecurent er = new EvenimentRecurent("2019-03-08 22:46:00",
"2019-03-09 23:00:00", "Scris probleme", 8);
System.
out.
println(er.
urmatorulEveniment("2019-03-10 14:46:02")); // 2019-04-20 22:46:00
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS50ZXh0Lio7CiAKY2xhc3MgRXZlbmltZW50IHsKICAgIHByaXZhdGUgRGF0ZSBkYXRhSW5jZXB1dCwgZGF0YVNmYXJzaXQ7CiAgICBwcml2YXRlIFN0cmluZyBudW1lOwogICAgcHVibGljIEV2ZW5pbWVudChTdHJpbmcgZGF0YUluY2VwdXQsIFN0cmluZyBkYXRhU2ZhcnNpdCwgU3RyaW5nIG51bWUpIHsKICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZvcm1hdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ5eXl5LU1NLWRkIEhIOm1tOnNzIik7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgdGhpcy5kYXRhSW5jZXB1dCA9IGZvcm1hdC5wYXJzZShkYXRhSW5jZXB1dCk7CiAgICAgICAgICAgIHRoaXMuZGF0YVNmYXJzaXQgPSBmb3JtYXQucGFyc2UoZGF0YVNmYXJzaXQpOwogICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRGF0YSBudSBlc3RlIGluIGZvcm1hdHVsIGNlcnV0ISIpOwogICAgICAgIH0KICAgICAgICB0aGlzLm51bWUgPSBudW1lOwogICAgfQogCiAgICBwdWJsaWMgRGF0ZSBnZXREYXRhSW5jZXB1dCgpIHsKICAgICAgICByZXR1cm4gZGF0YUluY2VwdXQ7CiAgICB9CiAKICAgIHB1YmxpYyBEYXRlIGdldERhdGFTZmFyc2l0KCkgewogICAgICAgIHJldHVybiBkYXRhU2ZhcnNpdDsKICAgIH0KIAogICAgcHVibGljIFN0cmluZyBnZXROdW1lKCkgewogICAgICAgIHJldHVybiBudW1lOwogICAgfQp9CiAKY2xhc3MgRXZlbmltZW50UmVjdXJlbnQgZXh0ZW5kcyBFdmVuaW1lbnR7CiAgICBwcml2YXRlIERhdGUgZGF0YTsKICAgIHByaXZhdGUgc3RhdGljIGludCBudW1hck9yZTsKIAogICAgcHVibGljIEV2ZW5pbWVudFJlY3VyZW50KFN0cmluZyBkYXRhSW5jZXB1dCwgU3RyaW5nIGRhdGFTZmFyc2l0LCBTdHJpbmcgbnVtZSwgaW50IG51bWFyT3JlKXsKICAgICAgICBzdXBlcihkYXRhSW5jZXB1dCwgZGF0YVNmYXJzaXQsIG51bWUpOwogICAgICAgIHRoaXMubnVtYXJPcmUgPSBudW1hck9yZTsKICAgIH0KIAogICAgcHVibGljIFN0cmluZyB1cm1hdG9ydWxFdmVuaW1lbnQoU3RyaW5nIGRhdGFkYXRhKXsKICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZvcm0gPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieXl5eS1NTS1kZCBISDptbTpzcyIpOwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIGRhdGEgPSBmb3JtLnBhcnNlKGRhdGFkYXRhKTsKICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkRhdGEgbnUgZXN0ZSBpbiBmb3JtYXR1bCBjZXJ1dCEiKTsKICAgICAgICB9CiAgICAgICAgRGF0ZSBhdXggPSBnZXREYXRhSW5jZXB1dCgpOyAKICAgICAgICAvKkRlY2ltYWxGb3JtYXQgY3J1bmNoaWZ5Rm9ybWF0dGVyID0gbmV3IERlY2ltYWxGb3JtYXQoIiMjIywjIyMiKTsKICAgICAgICBsb25nIGRpZmYgPSBkYXRhLmdldFRpbWUoKSAtIGF1eC5nZXRUaW1lKCk7CiAgICAgICAgaW50IGRpZmZzZWMgPSAoaW50KSAoZGlmZiAvICgxMDAwKSk7Ly9kaWZlcmVudGEgaW4gc2VjdW5kZSBkaW50cmUgY2VsZSBkb3VhIGRhdGUKICAgICAgICBkb3VibGUgaG91cnNlYyA9IGRpZmZzZWMgLyAzNjAwLjA7Ly9jb252ZXJ0aXJlYSBkaWZlcmVudGVpIGRpbiBzZWN1bmRlIGluIG9yZQogICAgICAgIGludCBkaWZmaG91cnMgPSAoaW50KSAoZGlmZiAvICg2MCAqIDYwICogMTAwMCkpOy8vZGlmZXJlbnRhIGluIG9yZSBkaW50cmUgY2VsZSBkb3VhIGRhdGUKICAgICAgICBpbnQgZXYgPSBkaWZmaG91cnMgLyB0aGlzLm51bWFyT3JlOyovCiAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKICAgICAgICBjYWwuc2V0VGltZShhdXgpOy8vdnJpYWJpbGEgY2FsIGRlIHRpcCBDYWxlbmRhciBwcmVpYSB2YWxvYXJlYSBkYXRlaSBkZSBpbmNlcHV0IAogICAgICAgIC8vY2FsLmFkZChDYWxlbmRhci5IT1VSLCAoZXYgKiB0aGlzLm51bWFyT3JlKSk7Ly9hbSBhZGF1Z2F0IGxhIGRhdGEgZGUgaW5jZXB1dCBtdWx0aW1wdWwgbnVtYXJ1bHVpIGRlIG9yZSBsYSBjYXJlIHNlIHJlcGV0YSBldmVuaW1lbnR1bAogICAgICAgIENhbGVuZGFyIGMxID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKICAgICAgICBjMS5zZXRUaW1lKGRhdGEpOwogICAgICAgIC8vaWYgKGhvdXJzZWMgPiAoZXYgKiB0aGlzLm51bWFyT3JlKSl7Ly8gaW4gY2F6dWwgaW4gY2FyZSBudW1hcnVsIHRvdGFsIGRlIG9yZSBkaW50cmUgZGF0YSBkZSBpbmNlcHV0IHNpIGRhdGEgZGluIHVybWF0b3J1bEV2ZW5pbWVudAogICAgICAgIC8vZSBtYWkgbWFyZSBkZWNhdCBlYyAqIHRoaXMubnVtYXJPcmUgbWFpIGFkYXVnIG51bWFydWwgZGUgb3JlIGluY2EgbyBkYXRhCiAgICAgICAgIC8vICAgY2FsLmFkZChDYWxlbmRhci5IT1VSLCB0aGlzLm51bWFyT3JlKTsKICAgICAgICAvL30qLwogICAgICAgIGxvbmcgc2Vjb25kcyA9IChjMS5nZXRUaW1lSW5NaWxsaXMoKSAtIGNhbC5nZXRUaW1lSW5NaWxsaXMoKSkgLyAxMDAwOwogICAgICAgIGludCBob3VycyA9IChpbnQpIChzZWNvbmRzIC8gMzYwMCk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGhvdXJzKTsKICAgICAgICAvL3JldHVybiBmb3JtLmZvcm1hdChjYWwuZ2V0VGltZSgpKTsvL2FtIGNvbnZlcnRpdCBkYXRhIENhbGVuZGFyIGludHItdW4gc3RyaW5nCiAgICAgICAgcmV0dXJuIGRhdGFkYXRhOwogICAgfQp9CiAKY2xhc3MgcHJvZyB7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgRXZlbmltZW50UmVjdXJlbnQgZXIgPSBuZXcgRXZlbmltZW50UmVjdXJlbnQoIjIwMTktMDMtMDggMjI6NDY6MDAiLAogICAgICAgICAgICAgICAgIjIwMTktMDMtMDkgMjM6MDA6MDAiLCAiU2NyaXMgcHJvYmxlbWUiLCA4KTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZXIudXJtYXRvcnVsRXZlbmltZW50KCIyMDE5LTAzLTEwIDE0OjQ2OjAyIikpOwogICAgICAgIC8vIDIwMTktMDQtMjAgMjI6NDY6MDAKICAgIH0KfQ==