Salut, am nevoie de acest program in java, multumesc!
Te-ai uitat peste cod și ai găsit clasa care salvează datele despre un meeting. Clasa se numește Meeting și are 2 câmpuri private de tip Calendar, dataInceput și dataSfarsit. Ea mai conține și un constructor care primește 2 parametri de tip Calendar, dataInceput și dataSfarsit, pe baza cărora actualizează valorile câmpurilor clasei. Dacă dataSfarsit e o dată mai mică decât dataInceput, constructorul aruncă o excepție de tipul IllegalArgumentException cu un mesaj sugestiv. În plus, clasa trebuie să implementeze metoda toString(), care returnează un String de forma dataInceput -> dataSfarsit, unde datele sunt în formatul zz/ll/aaaa hh:mm:ss (exemplu: 01/04/2019 11:20:00 -> 01/04/2019 11:50:00).
Sarcina ta e să implementezi clasa Meeting, care să conțină membrii specificați mai sus și să implementeze clasa Comparable. Metoda compareTo trebuie să compare obiectele în funcție de data de început.
Exemplu
import java.text.*;
import java.util.*;
// clasa ta aici
public class prog {
public static void main(String[] args) {
try {
List l = new ArrayList<>();
l.add(new Meeting(new GregorianCalendar(2019, Calendar.APRIL, 1, 11, 20, 0),
new GregorianCalendar(2019, Calendar.APRIL, 1, 11, 50, 0)));
l.add(new Meeting(new GregorianCalendar(2019, Calendar.MARCH, 3, 11, 20, 0),
new GregorianCalendar(2019, Calendar.MARCH, 5, 11, 50, 0)));
Collections.sort(l);
System.out.println(l);
// Se va afisa intai "03/03/2019 11:20:00 -> 05/03/2019 11:50:00", urmat de "01/04/2019 11:20:00 -> 01/04/2019 11:50:00"
} catch (IllegalArgumentException e) {
System.out.print(e.getMessage()); // Nu va afisa nimic
}
}
}
Răspunsuri la întrebare
import java.text.SimpleDateFormat;
import java.util.*;
class Meeting implements Comparable<Meeting>{
private Calendar dataInceput, dataSfarsit;
public Meeting(Calendar dataInceput ,Calendar dataSfarsit){
if(dataInceput.compareTo(dataSfarsit) > 0) throw new IllegalArgumentException("dataInceput nu poate fi mai mica decat dataSfarsit");
this.dataInceput = dataInceput;
this.dataSfarsit = dataSfarsit;
}
@Override
public int compareTo(Meeting o) {
return dataInceput.compareTo(o.dataInceput);
}
@Override
public String toString(){
SimpleDateFormat frm = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
return frm.format(dataInceput.getTime()) + " -> " + frm.format(dataSfarsit.getTime());
}
}
public class Prog {
public static void main(String[] args) {
try {
List<Meeting> l = new ArrayList();
l.add(new Meeting(new GregorianCalendar(2019, Calendar.APRIL, 1, 11, 20, 0),
new GregorianCalendar(2019, Calendar.APRIL, 1, 11, 50, 0)));
l.add(new Meeting(new GregorianCalendar(2019, Calendar.MARCH, 3, 11, 20, 0),
new GregorianCalendar(2019, Calendar.MARCH, 5, 11, 50, 0)));
Collections.sort(l);
System.out.println(l);
// Se va afisa intai "03/03/2019 11:20:00 -> 05/03/2019 11:50:00", urmat de "01/04/2019 11:20:00 -> 01/04/2019 11:50:00"
} catch (IllegalArgumentException e) {
System.out.print(e.getMessage()); // Nu va afisa nimic
}
}
}