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
