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 că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de sprijin, nu ezitați să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la favorite pentru acces rapid.