public class Date { private int weekday; private int starthour; private int startmin; private int duration; private String title; public Date(int weekday, int starthour, int startmin, int duration, String title) { this.weekday = weekday; this.starthour = starthour; this.startmin = startmin; this.duration = duration; this.title = title; // this ist nur hier nötig, weil die Parameter die Membervariablen verschatten } public int getWeekday() { return weekday; } public int getStarthour() { return starthour; } public int getStartmin() { return startmin; } public int getDuration() { return duration; } public String getTitle() { return title; } public String toString() { String result = title + " - "; // Wochentag mit Komma anhängen result += weekdayToString() + ", "; // Stunde anhängen if (starthour < 10) // ggf. führende Null anfügen result += '0'; result += starthour; result += ':'; // steht zwischen Stunde und Minute // Minute anhängen if (startmin < 10) // ggf. führende Null anfügen result += '0'; result += startmin; // Dauer in Klammern anfügen result += " (" + durationToString() + ")"; return result; } private String weekdayToString() { switch (weekday) { case 0: return "Montag"; case 1: return "Dienstag"; case 2: return "Mittwoch"; case 3: return "Donnerstag"; case 4: return "Freitag"; case 5: return "Samstag"; case 6: return "Sonntag"; default: return "Ungültiger Wochentag"; } } private String durationToString() { int days = duration / (60*24); // abgerundete Division int hours = duration / 60 - days *24; // verbleibende Stunden int minutes = duration - days * (60*24) - hours * 60; // verbleibende Minuten String result = ""; // Tage anhängen, falls nötig if (days != 0) { result += days + " Tag"; if (days > 1) result += 'e'; // TagE } // Stunden anhängen, falls nötig if (hours != 0) { if (days != 0) // ggf. noch Trennzeichen davor nötig result += " "; result += hours + " Stunde"; if (hours > 1) result += 'n'; // StundeN } // Minuten anhängen und zurückgeben if (minutes != 0) { if (days != 0 || hours != 0) result += " "; // ggf. Trennzeichen result += minutes + " Minute"; if (minutes > 1) result += 'n'; // Minuten return result; } if (result.length() == 0) return "Keine Zeitangabe"; // else: Zeit ist 0 return result; } public static void main(String[] args) { Date test1 = new Date(2, 7, 4, 2581, "PGdP mit den Bros"); Date test2 = new Date(6, 0, 59, 0, "Spongebob kucken"); System.out.println(test1); System.out.println(test2); } }