DCV 2022 03/Strukturierte Programmierung Uebungen/Kalender: Unterschied zwischen den Versionen
Gyula (Diskussion | Beiträge) |
Drlue (Diskussion | Beiträge) |
||
| (9 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
| Zeile 17: | Zeile 17: | ||
'''Aufruf:''' | '''Aufruf:''' | ||
{{JSL|System.out.println( | {{JSL|System.out.println(getSundays(2021, 9));}} | ||
'''Ausgabe:''' | '''Ausgabe:''' | ||
| Zeile 50: | Zeile 50: | ||
{{BSL|20}} | {{BSL|20}} | ||
=== Aufgabe: Geburtstag === | |||
Erstelle ein Programm, welches den Benutzer nach seinem Geburtstag fragt. Zeig dem Benutzer den Tag seiner Geburt (Mo-So) und beende das Programm. | |||
=== Aufgabe: Kalender === | === Aufgabe: Kalender === | ||
Erstelle ein Programm, welches einen Kalender korrekt darstellt. Verwende {{JSL|Calendar}} und {{JSL|Date}} dafür, der aktuelle Tag soll speziell markiert werden. | |||
Erstelle ein Programm, welches einen Kalender korrekt darstellt. Verwende {{JSL| | |||
Achte darauf, dass | Achte darauf, dass | ||
* | * Der aktuellen Tag ist mit Stern gekennzeichnet ist | ||
* Nicht jeder Monat am Montag beginnt | * Nicht jeder Monat am Montag beginnt | ||
* Nicht jeder Monat am Sonntag endet | * Nicht jeder Monat am Sonntag endet | ||
Zum Testen sollst du verschiedene Tage als "heute" mit der Hilfe von {{JSL| | Zum Testen sollst du verschiedene Tage als "heute" mit der Hilfe von {{JSL|Calendar}} verwenden. | ||
Die Ausgabe sollte wie folgt sein: | Die Ausgabe sollte wie folgt sein: | ||
| Zeile 71: | Zeile 72: | ||
| 18 | 19 | 20 | 21 | 22 | 23 | 24 | | | 18 | 19 | 20 | 21 | 22 | 23 | 24 | | ||
| 25 | 26 | 27 | 28 | 29 | 30 | | | | 25 | 26 | 27 | 28 | 29 | 30 | | | ||
=== Bonusaufgabe: Kalender Regionsunabhängig === | |||
Die Leute in Thailand sind traurig weil die Ausgabe deines Kalenderprogramms aus der vorhergehenden Aufgabe nicht korrekt ist, da ihre Woche am Sonntag beginnt. Ändere dein Programm so ab, dass es Kalenderunabhängig den richtigen Wochenstart verwendet. Verwende dafür {{JSL|calendar.getStartOfWeek()}}. Teste dein Programm mit verschiedenen {{JSL|Locales}} in der {{JSL|main()}} Methode. | |||
'''Aufruf''' | |||
{{JML|code= | |||
//Locale wird auf Thailand gesetzt, hier wird der Buddistische Kalender verwendet | |||
Locale.setDefault(new Locale.Builder().setRegion("TH").setLanguage("th").build()); | |||
printCalendar(2565, 4); | |||
//Locale wird auf Deutschland gesetzt, hier wird der Gregorianische Kalender verwendet | |||
Locale.setDefault(Locale.GERMANY); | |||
printCalendar(2022, 4); | |||
}} | |||
''Ausgabe'' | |||
2022 04 | |||
| Mo | Di | Mi | Do | Fr | Sa | So | | |||
| | | | | 1 | 2 | 3 | | |||
| 4*| 5 | 6 | 7 | 8 | 9 | 10 | | |||
| 11 | 12 | 13 | 14 | 15 | 16 | 17 | | |||
| 18 | 19 | 20 | 21 | 22 | 23 | 24 | | |||
| 25 | 26 | 27 | 28 | 29 | 30 | | | |||
2565 04 | |||
| So | Mo | Di | Mi | Do | Fr | Sa | | |||
| | | | | | 1 | 2 | | |||
| 3 | 4*| 5 | 6 | 7 | 8 | 9 | | |||
| 10 | 11 | 12 | 13 | 14 | 15 | 16 | | |||
| 17 | 18 | 19 | 20 | 21 | 22 | 23 | | |||
| 24 | 25 | 26 | 27 | 28 | 29 | 30 | | |||
Aktuelle Version vom 5. April 2022, 13:43 Uhr
Im folgenden sollen einige Funktionen der Calendar Api erlernt werden.
Aufgabe: Wann ist Sonntag?
Erstelle eine neue Calendar Instanz und gib das Datum des nächsten Sonntags aus.
Aufgabe: Wieviele Sonntage hat der Monat?
Erstelle eine Methode welche als Parameter das Jahr und den Monat nimmt und die Anzahl der Sonntage zurückgibt. Teste diese Methode in der main Methode. Wie dieses Problem gelöst wird, steht dir völlig frei.
Aufruf:
System.out.println(getSundays(2021, 10));
Ausgabe:
5
Aufruf:
System.out.println(getSundays(2021, 9));
Ausgabe:
4
Aufgabe: Wieviele Arbeitstage?
Erstelle eine Methode welche als Parameter das Jahr und den Monat nimmt und die Anzahl der Arbeitstage zurückgibt (Mo-Fr). Teste diese Methode in der main Methode. Wie dieses Problem gelöst wird, steht dir völlig frei.
Aufruf:
System.out.println(getWorkdays(2021, 6));
Ausgabe:
22
Aufruf:
System.out.println(getWorkdays(2021, 3));
Ausgabe:
23
Aufruf:
System.out.println(getWorkdays(2021, 2));
Ausgabe:
20
Aufgabe: Geburtstag
Erstelle ein Programm, welches den Benutzer nach seinem Geburtstag fragt. Zeig dem Benutzer den Tag seiner Geburt (Mo-So) und beende das Programm.
Aufgabe: Kalender
Erstelle ein Programm, welches einen Kalender korrekt darstellt. Verwende Calendar und Date dafür, der aktuelle Tag soll speziell markiert werden.
Achte darauf, dass
- Der aktuellen Tag ist mit Stern gekennzeichnet ist
- Nicht jeder Monat am Montag beginnt
- Nicht jeder Monat am Sonntag endet
Zum Testen sollst du verschiedene Tage als "heute" mit der Hilfe von Calendar verwenden.
Die Ausgabe sollte wie folgt sein:
2022 April | Mo | Di | Mi | Do | Fr | Sa | So | | | | | | 1 | 2 | 3 | | 4*| 5 | 6 | 7 | 8 | 9 | 10 | | 11 | 12 | 13 | 14 | 15 | 16 | 17 | | 18 | 19 | 20 | 21 | 22 | 23 | 24 | | 25 | 26 | 27 | 28 | 29 | 30 | |
Bonusaufgabe: Kalender Regionsunabhängig
Die Leute in Thailand sind traurig weil die Ausgabe deines Kalenderprogramms aus der vorhergehenden Aufgabe nicht korrekt ist, da ihre Woche am Sonntag beginnt. Ändere dein Programm so ab, dass es Kalenderunabhängig den richtigen Wochenstart verwendet. Verwende dafür calendar.getStartOfWeek(). Teste dein Programm mit verschiedenen Locales in der main() Methode.
Aufruf
//Locale wird auf Thailand gesetzt, hier wird der Buddistische Kalender verwendet
Locale.setDefault(new Locale.Builder().setRegion("TH").setLanguage("th").build());
printCalendar(2565, 4);
//Locale wird auf Deutschland gesetzt, hier wird der Gregorianische Kalender verwendet
Locale.setDefault(Locale.GERMANY);
printCalendar(2022, 4);
Ausgabe
2022 04 | Mo | Di | Mi | Do | Fr | Sa | So | | | | | | 1 | 2 | 3 | | 4*| 5 | 6 | 7 | 8 | 9 | 10 | | 11 | 12 | 13 | 14 | 15 | 16 | 17 | | 18 | 19 | 20 | 21 | 22 | 23 | 24 | | 25 | 26 | 27 | 28 | 29 | 30 | | 2565 04 | So | Mo | Di | Mi | Do | Fr | Sa | | | | | | | 1 | 2 | | 3 | 4*| 5 | 6 | 7 | 8 | 9 | | 10 | 11 | 12 | 13 | 14 | 15 | 16 | | 17 | 18 | 19 | 20 | 21 | 22 | 23 | | 24 | 25 | 26 | 27 | 28 | 29 | 30 |