fork download
  1. import java.text.*;
  2. import java.lang.*;
  3. import java.util.*;
  4.  
  5. class Eveniment {
  6. private Date dataInceput, dataSfarsit;
  7. private String nume;
  8. // Primeste 2 stringuri in format yyyy-MM-dd HH:mm:ss reprezentand data si ora
  9. // de inceput si de final a evenimentului si inca un string care contine numele
  10. // cu care apare evenimentul in calendar
  11. public Eveniment(String dataInceput, String dataSfarsit, String nume) {
  12. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  13. try {
  14. this.dataInceput = format.parse(dataInceput);
  15. this.dataSfarsit = format.parse(dataSfarsit);
  16. } catch (Exception e) {
  17. System.out.println("Data nu este in formatul cerut!");
  18. }
  19. this.nume = nume;
  20. }
  21.  
  22. public Date getDataInceput() {
  23. return dataInceput;
  24. }
  25.  
  26. public Date getDataSfarsit() {
  27. return dataSfarsit;
  28. }
  29.  
  30. public String getNume() {
  31. return nume;
  32. }
  33. }
  34.  
  35. class EvenimentRecurent extends Eveniment {
  36. private int oreRecurente;
  37.  
  38. EvenimentRecurent(String dataInceput, String dataSfarsit,
  39. String numeEveniment, int oreRecurente) {
  40. super(dataInceput, dataSfarsit, numeEveniment);
  41. this.oreRecurente = oreRecurente;
  42. }
  43.  
  44. public String urmatorulEveniment(String dataCurenta) {
  45. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  46. Calendar urmatorulEv = Calendar.getInstance(),
  47. dataActuala = Calendar.getInstance();
  48. try {
  49. dataActuala.setTime(format.parse(dataCurenta));
  50. urmatorulEv.setTime(getDataInceput());
  51. } catch (Exception e) {
  52. System.out.println("Data nu este in formatul cerut!");
  53. }
  54. while (urmatorulEv.before(dataActuala)) {
  55. urmatorulEv.add(Calendar.HOUR, oreRecurente);
  56. }
  57. return format.format(urmatorulEv.getTime());
  58. }
  59. }
  60.  
  61. class prog {
  62. public static void main(String[] args) {
  63.  
  64.  
  65. EvenimentRecurent er = new EvenimentRecurent("2019-04-19 14:46:23",
  66. "2019-05-09 23:00:00", "Scris probleme", 1000);
  67. System.out.println(er.urmatorulEveniment("2019-04-19 14:46:23"));
  68. // // 2019-04-20 22:46:00
  69.  
  70. // EvenimentRecurent er = new EvenimentRecurent("2019-03-09 22:46:00",
  71. // "2019-03-09 23:00:00", "Scris probleme", 48);
  72. // if (er.urmatorulEveniment("2019-03-8 12:00:00").compareTo("2019-03-09 22:46:00") != 0) {
  73. // System.out.println("NOPE");
  74. }
  75. // 2019-03-09 22:46:00
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82. // }
  83. }
Success #stdin #stdout 0.16s 59120KB
stdin
Standard input is empty
stdout
2019-04-19 14:46:23