Changeset 398 in Java_Quellcode_SOOP_Vorlesung
- Timestamp:
- Dec 12, 2017, 9:40:15 AM (7 years ago)
- Location:
- oop
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
oop/Datum.java
r188 r398 11 11 * übergebenen Daten durch. Anmerkung: Üblicherweise verwendet man für die 12 12 * Parameter eines Konstruktors exakt die Variablennamen der entsprechenden 13 * Attribute der Klasse. Dadurch wird die verwendung von <code>this</code>13 * Attribute der Klasse. Dadurch wird die Verwendung von <code>this</code> 14 14 * erzwungen und die Zuordnung ist eindeutig klar. Hier wurde davon 15 15 * abgesehen, um zu demonstrieren, dass die Gleichnamigkeit der Parameter 16 * und Attribute ein Konvention und keine erzwungene Syntax ist.16 * und Attribute eine Konvention und keine erzwungene Syntax ist. 17 17 * 18 18 * @param t … … 51 51 52 52 /** 53 * Erhöht dieses Datum einen Tag unter Berücksichtigung der 54 * Gültigkeitsregeln für Datumsangaben. 55 */ 56 public void erhoehe() { 57 switch (this.monat) { 58 case 1: 59 case 3: 60 case 5: 61 case 7: 62 case 8: 63 case 10: 64 case 12: 65 if (this.tag < 31) { 66 this.tag++; 67 } else { 68 this.tag = 1; 69 if (this.monat < 12) { 70 this.monat++; 71 } else { 72 this.monat = 1; 73 this.jahr++; 74 } 75 } 76 break; 77 case 4: 78 case 6: 79 case 9: 80 case 11: 81 if (this.tag < 30) { 82 this.tag++; 83 } else { 84 this.tag = 1; 85 this.monat++; 86 } 87 break; 88 case 2: 89 if (this.tag < 28 || (this.tag == 28 && Datum.istSchaltjahr(this.jahr))) { 90 this.tag++; 91 } else { 92 this.tag = 1; 93 this.monat = 3; 94 } 95 break; 96 default: break; 97 } 98 } 99 100 /** 101 * Überprüft für ein beliebiges Jahr, ob es sich um ein Schaltjahr handelt. 102 * 103 * @param jahr 104 * Zu prüfendes Jahr 105 * @return true, falls es sich um ein Schaltjahr handelt, sonst false 106 */ 107 public static boolean istSchaltjahr(int jahr) { 108 // Regel: alle durch 4 teilbaren Jahre sind Schaltjahre, außer die durch 109 // 100 110 // teilbaren Jahre. Durch 400 teilbare Jahre sind degegen wiederum 111 // Schaltjahre 112 return ((jahr % 4 == 0) && (jahr % 100 != 0)) || (jahr % 400 == 0); 113 } 114 115 /** 53 116 * Liefert das Datum als Zeichenkette in der üblichen deutschen Schreibweise 54 117 * Tag.Monat.Jahr -
oop/DatumTest.java
r245 r398 4 4 5 5 public static void main(String[] args) { 6 Datum d = new Datum( 21, 11, 2016);7 6 Datum d = new Datum(12, 2, 1900); 7 8 8 System.out.println(d); 9 10 for (int i = 1; i <= 24; i++) { 11 d.erhoehe(); 12 System.out.println(d); 13 } 9 14 } 10 11 15 }
Note: See TracChangeset
for help on using the changeset viewer.