import java.text.*;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.util.*;
import java.time.*;
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 numarOre;
super(dataInceput, dataSfarsit, nume);
this.numarOre = numarOre;
}
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime ldt = LocalDateTime.parse(dataInceput, formatter);
LocalDateTime ldt1 = ldt.plusHours(numarOre);
return ldt1.format(formatter);
}
}
public class Main {
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
}
}
aW1wb3J0IGphdmEudGV4dC4qOwppbXBvcnQgamF2YS50aW1lLmZvcm1hdC5EYXRlVGltZUZvcm1hdHRlcjsKaW1wb3J0IGphdmEudGltZS5mb3JtYXQuRGF0ZVRpbWVGb3JtYXR0ZXJCdWlsZGVyOwppbXBvcnQgamF2YS51dGlsLio7CmltcG9ydCBqYXZhLnRpbWUuKjsKCmNsYXNzIEV2ZW5pbWVudCB7CiAgICBwcml2YXRlIERhdGUgZGF0YUluY2VwdXQsIGRhdGFTZmFyc2l0OwogICAgcHJpdmF0ZSBTdHJpbmcgbnVtZTsKICAgIC8vIFByaW1lc3RlIDIgc3RyaW5ndXJpIGluIGZvcm1hdCB5eXl5LU1NLWRkIEhIOm1tOnNzIHJlcHJlemVudGFuZCBkYXRhIHNpIG9yYQogICAgLy8gZGUgaW5jZXB1dCBzaSBkZSBmaW5hbCBhIGV2ZW5pbWVudHVsdWkgc2kgaW5jYSB1biBzdHJpbmcgY2FyZSBjb250aW5lIG51bWVsZQogICAgLy8gY3UgY2FyZSBhcGFyZSBldmVuaW1lbnR1bCBpbiBjYWxlbmRhcgogICAgcHVibGljIEV2ZW5pbWVudChTdHJpbmcgZGF0YUluY2VwdXQsIFN0cmluZyBkYXRhU2ZhcnNpdCwgU3RyaW5nIG51bWUpIHsKICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZvcm1hdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ5eXl5LU1NLWRkIEhIOm1tOnNzIik7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgdGhpcy5kYXRhSW5jZXB1dCA9IGZvcm1hdC5wYXJzZShkYXRhSW5jZXB1dCk7CiAgICAgICAgICAgIHRoaXMuZGF0YVNmYXJzaXQgPSBmb3JtYXQucGFyc2UoZGF0YVNmYXJzaXQpOwogICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRGF0YSBudSBlc3RlIGluIGZvcm1hdHVsIGNlcnV0ISIpOwogICAgICAgIH0KICAgICAgICB0aGlzLm51bWUgPSBudW1lOwogICAgfQoKICAgIHB1YmxpYyBEYXRlIGdldERhdGFJbmNlcHV0KCkgewogICAgICAgIHJldHVybiBkYXRhSW5jZXB1dDsKICAgIH0KCiAgICBwdWJsaWMgRGF0ZSBnZXREYXRhU2ZhcnNpdCgpIHsKICAgICAgICByZXR1cm4gZGF0YVNmYXJzaXQ7CiAgICB9CgogICAgcHVibGljIFN0cmluZyBnZXROdW1lKCkgewogICAgICAgIHJldHVybiBudW1lOwogICAgfQp9CgpjbGFzcyBFdmVuaW1lbnRSZWN1cmVudCBleHRlbmRzIEV2ZW5pbWVudCB7CiAgICBwcml2YXRlIGludCBudW1hck9yZTsKICAgIEV2ZW5pbWVudFJlY3VyZW50KFN0cmluZyBkYXRhSW5jZXB1dCwgU3RyaW5nIGRhdGFTZmFyc2l0LCBTdHJpbmcgbnVtZSwgaW50IG51bWFyT3JlKSB7CiAgICAgICAgc3VwZXIoZGF0YUluY2VwdXQsIGRhdGFTZmFyc2l0LCBudW1lKTsKICAgICAgICB0aGlzLm51bWFyT3JlID0gbnVtYXJPcmU7CiAgICB9CgogICAgcHVibGljIFN0cmluZyB1cm1hdG9ydWxFdmVuaW1lbnQoU3RyaW5nIGRhdGFJbmNlcHV0KSB7CiAgICAgICAgRGF0ZVRpbWVGb3JtYXR0ZXIgZm9ybWF0dGVyID0gRGF0ZVRpbWVGb3JtYXR0ZXIub2ZQYXR0ZXJuKCJ5eXl5LU1NLWRkIEhIOm1tOnNzIik7CiAgICAgICAgTG9jYWxEYXRlVGltZSBsZHQgPSBMb2NhbERhdGVUaW1lLnBhcnNlKGRhdGFJbmNlcHV0LCBmb3JtYXR0ZXIpOwogICAgICAgIExvY2FsRGF0ZVRpbWUgbGR0MSA9IGxkdC5wbHVzSG91cnMobnVtYXJPcmUpOwogICAgICAgIHJldHVybiBsZHQxLmZvcm1hdChmb3JtYXR0ZXIpOwogICAgfQp9CgpwdWJsaWMgY2xhc3MgTWFpbiB7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgRXZlbmltZW50UmVjdXJlbnQgZXIgPSBuZXcgRXZlbmltZW50UmVjdXJlbnQoIjIwMTktMDMtMDkgMjI6NDY6MDAiLAogICAgICAgICAgICAgICAgIjIwMTktMDMtMDkgMjM6MDA6MDAiLCAiU2NyaXMgcHJvYmxlbWUiLCAyNCk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGVyLnVybWF0b3J1bEV2ZW5pbWVudCgiMjAxOS0wNC0xOSAyMjo0NjoyMyIpKTsKICAgICAgICAvLyAyMDE5LTA0LTIwIDIyOjQ2OjAwCiAgICB9Cn0=