Hallo,
ich habe mir gerade die Lösung zu einer alten Prüfungsaufgabe angesehen. Die Aufgabe lautete alle Projekte, die älter als 10 Jahre sind, sollen aus einer Liste entfernt werden.
Die Lösung dazu sieht folgendermaßen aus
Was mich daran irritiert ist das hin und herwechseln von Date und Calendar. Der Calendar kann doch alles was auch das Date kann, würde man nur mit Calendar arbeiten wäre es doch viel übersichtlicher. Ich hab selber mal etwas rumgespielt und hätte es so in etwa gemacht:
Gibt es einen speziellen Grund warum man zwischen Date und Calendar wechselt?
Danke
ich habe mir gerade die Lösung zu einer alten Prüfungsaufgabe angesehen. Die Aufgabe lautete alle Projekte, die älter als 10 Jahre sind, sollen aus einer Liste entfernt werden.
Die Lösung dazu sieht folgendermaßen aus
Java:
private static void cleanUp(List<Projekt> list){
Date end = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(end);
cal.set(Calendar.YEAR, cal.get(Calendar.YEAR) - 10);
for (Projekt project : list){
if (project.getStatus() == STATUS.abgeschlossen){
if (project.getLaufzeitBis().getTime() < cal.getTimeInMillis()){
list.remove(project);
System.out.println("Lösche Projekt");
}
}
}
}
Was mich daran irritiert ist das hin und herwechseln von Date und Calendar. Der Calendar kann doch alles was auch das Date kann, würde man nur mit Calendar arbeiten wäre es doch viel übersichtlicher. Ich hab selber mal etwas rumgespielt und hätte es so in etwa gemacht:
Java:
GregorianCalendar g1 = new GregorianCalendar(); //Fiktives Enddatum eines Projektes
g1.add(Calendar.YEAR, -11); //Zum Testen das Enddatum auf heute vor 11 jahren gesetzt
GregorianCalendar g3 = new GregorianCalendar(); //aktuelles Datum erstellen
g3.add(Calendar.YEAR, -10); //Vom aktuellen Datum 10 Jahre abziehen - Es sollen ja alle gelöscht werden, die älter als 10 Jahre sind
if(g1.getTimeInMillis() < g3.getTimeInMillis()){ //Wenn jetzt das Enddatum eines Projektes kleiner ist als das Datum
System.out.println("REMOVE"); // heute vor 10 Jahren, dann wird es gelöscht
}
Gibt es einen speziellen Grund warum man zwischen Date und Calendar wechselt?
Danke