C# :: Aufgabe #41 :: Lösung #8
14 Lösungen

#41
Schaltjahresberechnung
Anfänger - C#
von Process1
- 10.01.2013 um 06:52 Uhr
Es soll eine jahreszahl übergeben werden und es soll überprüft werden ob es sich um ein Schaltjahr handelt oder nicht.
Es gilt:
- Wenn ein Jahr durch 4 teilbar ist, ist es ein Schaltjahr, aber
- wenn es durch 100 teilbar ist, ist es kein schaltjahr, außer
- es ist durch 400 teilbar, dann ist es ein schaltjahr
z.b. 1664, 1600, 2000, 2004 sind schaltjahre
1003, 2006, 1700 sind keine schaltjahre
Es gilt:
- Wenn ein Jahr durch 4 teilbar ist, ist es ein Schaltjahr, aber
- wenn es durch 100 teilbar ist, ist es kein schaltjahr, außer
- es ist durch 400 teilbar, dann ist es ein schaltjahr
z.b. 1664, 1600, 2000, 2004 sind schaltjahre
1003, 2006, 1700 sind keine schaltjahre
#8

von s1bl3x (50 Punkte)
- 19.11.2015 um 20:27 Uhr

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Schaltjahr { class Program { static void Main(string[] args) { // Initialwerte uint year = 0; string eingabe = string.Empty; char auswahl = ' '; bool fehler = false; // Consolenfarbe & Initialisierung Console.ForegroundColor = ConsoleColor.Black; Console.BackgroundColor = ConsoleColor.White; Console.Clear(); // Schleife über gesamtes Programm do { Console.Clear(); // Menü Ausgabe über Methode Menu(); // Auswahl über Methode auswahl = EingabeMenu("Auswahl: "); // logische Abfragen für Menüauswahl if (auswahl == '9') { // Ausstieg und Beenden des Programmes break; } else if (auswahl == '1') // Bei Auswahl '1' löschen der Console // und weiter mit Auswahl für Berechnung eines bestimmten Jahres { Console.Clear(); // Schleife für Fehlerprüfung do { fehler = false; try { Console.Clear(); Console.WriteLine("Ausgabe für Einzelnes Jahr"); Console.WriteLine("----------------------------------"); Console.Write("Bitte Jahr eingeben: "); year = Convert.ToUInt32(Console.ReadLine()); if (year < 10000) { fehler = false; } else { Console.WriteLine("Maximal 4 Stellige Jahreszahlen zulässig!"); Console.ReadKey(); fehler = true; } } catch { Console.WriteLine("Jahreszahlen von 1 - 9999 zulässig!"); Console.ReadKey(); fehler = true; } } while (fehler); // logische Abfragen für Schaltjahr Berechnung if (year % 4 == 0 && (year % 400 == 0 || year % 100 != 0)) { Console.WriteLine("{0} ist ein Schaltjahr", year); Console.WriteLine("----------------------------------"); Console.ReadKey(); } else { Console.WriteLine("{0} ist kein Schaltjahr", year); Console.WriteLine("----------------------------------"); Console.ReadKey(); } } else if (auswahl == '2') // Bei Auswahl '2' löschen der Console // und weiter mit Ausgabe der Jahre 2015 - 2025 { Console.Clear(); Console.WriteLine("Schaltjahr Ausgabe 2015 - 2025"); Console.WriteLine("----------------------------------"); for (int i = 2015; i <= 2025; i++) { if (DateTime.IsLeapYear(i)) Console.WriteLine("Das Jahr {0} ist ein Schaltjahr", i); else Console.WriteLine("Das Jahr {0} ist kein Schaltjahr", i); } Console.WriteLine("----------------------------------"); Console.ReadKey(); } // zurücksetzen des Wertes "year" für neue Aufgabe year = 0; // Abfrage "Nochmal?" über Methode eingabe = AbfrageNochmal("zum Hauptmenü? (n = Beenden) j/n: "); //Ende Schleife über Programm } while (eingabe.ToLower() == "j"); } static string AbfrageNochmal(string text) { string value = string.Empty; do { Console.Write(text); value = Console.ReadLine(); } while (value.ToLower() != "j" && value.ToLower() != "n"); return value; } static void Menu() { Console.WriteLine("Schaltjahr Ausgabe"); Console.WriteLine("----------------------------------"); Console.WriteLine("1. Nur 1 Jahr abfragen"); Console.WriteLine("2. Von 2015 bis 2025"); Console.WriteLine(); Console.WriteLine("9. Beenden"); Console.WriteLine("----------------------------------"); } static Char EingabeMenu(string text) { bool fehler = false; char value = ' '; do { try { fehler = false; Console.Write(text); value = Convert.ToChar(Console.ReadLine()); if (value != '1' && value != '2' && value != '9') throw new Exception("Nur Auswahl 1,2 & 9 erlaubt!"); } catch (Exception e) { Console.WriteLine(e.Message); fehler = true; } } while (fehler); return value; } } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1