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