class Eveniment {
private Date dataInceput, dataSfarsit;
private String nume;
public Eveniment(String dataInceput, String dataSfarsit, String nume) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
this.dataInceput = format.parse(dataInceput);
this.dataSfarsit = format.parse(dataSfarsit);
} catch (Exception e) {
System.out.println("Data nu este in formatul cerut!");
}
this.nume = nume;
}
public Date getDataInceput() {
return dataInceput;
}
public Date getDataSfarsit() {
return dataSfarsit;
}
public String getNume() {
return nume;
}
}
class EvenimentRecurent extends Eveniment {
int numarOre;
public EvenimentRecurent(String dataInceput, String dataSfarsit, String nume, int numarOre) {
super(dataInceput, dataSfarsit, nume);
this.numarOre = numarOre;
}
public String urmatorulEveniment(String x) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date evenimentDupa = null;
try {
evenimentDupa = format.parse(x);
} catch (Exception e) {
e.printStackTrace();
}
Date copieStart = new Date(getDataInceput().getTime());
Date copieFinal = new Date(getDataSfarsit().getTime());
while (copieStart.before(evenimentDupa)) {
long nextEventMillis = copieStart.getTime() + (numarOre * 60 * 60 * 1000);
long nextFinalMillis = copieFinal.getTime() + (numarOre * 60 * 60 * 1000);
copieStart.setTime(nextEventMillis);
copieFinal.setTime(nextFinalMillis);
}
if (copieStart.after(evenimentDupa) || copieStart.equals(evenimentDupa)) {
return format.format(copieStart);
}
return format.format(copieStart);
}
}
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
}
}
Aceasta este bucata de cod pe care trebuie sa lucrez:
class EvenimentRecurent extends Eveniment {
int numarOre;
public EvenimentRecurent(String dataInceput, String dataSfarsit, String nume, int numarOre) {
super(dataInceput, dataSfarsit, nume);
this.numarOre = numarOre;
}
public String urmatorulEveniment(String x) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date evenimentDupa = null;
try {
evenimentDupa = format.parse(x);
} catch (Exception e) {
e.printStackTrace();
}
Date copieStart = new Date(getDataInceput().getTime());
Date copieFinal = new Date(getDataSfarsit().getTime());
while (copieStart.before(evenimentDupa)) {
long nextEventMillis = copieStart.getTime() + (numarOre * 60 * 60 * 1000);
long nextFinalMillis = copieFinal.getTime() + (numarOre * 60 * 60 * 1000);
copieStart.setTime(nextEventMillis);
copieFinal.setTime(nextFinalMillis);
}
if (copieStart.after(evenimentDupa) || copieStart.equals(evenimentDupa)) {
return format.format(copieStart);
}
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți întrebări suplimentare sau nevoie de ajutor, vă rugăm să ne contactați cu încredere. Așteptăm cu drag să reveniți și nu uitați să ne salvați în lista dumneavoastră de favorite!