C# :: Aufgabe #41 :: Lösung #1
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
#1
von hyperion (120 Punkte)
- 06.03.2013 um 22:37 Uhr
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Schaltjahresberechnung
{
class Program
{
static void Main(string[] args)
{
string yearToCheck;
// Eingabe des zu überprüfenden Jahres
Console.WriteLine("Schaltjahrüberprüfung");
do
{
Console.Write("\nBitte Jahreszahl eingeben: ");
yearToCheck = Console.ReadLine();
} while (!IsNumber(yearToCheck));
// Ausgabe
if ( IsLeapYear(Convert.ToInt16(yearToCheck)) )
Console.WriteLine("\n{0} ist ein Schaltjahr.", yearToCheck);
else
Console.WriteLine("\n{0} ist kein Schaltjahr.", yearToCheck);
Console.ReadKey();
}
// Prüft, ob der übergebene Wert einer Zahl entspricht
static bool IsNumber(string number)
{
// whitespace entfernen
number = number.Trim();
// Sind alle Zeichen Zahlen?
for (int i = 0; i < number.Length; i++)
{
if (!Char.IsDigit(number[i]))
{
Console.WriteLine("\nKeine gültige Zahl!");
return false;
}
}
return true;
}
// Prüfen ob Schaltjahr
static bool IsLeapYear(int year)
{
bool isLapYear = true;
/* 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
*/
if ((year % 4) == 0)
{
if ((year % 100) == 0)
isLapYear = false;
if ((year % 400) == 0)
isLapYear = true;
}
else
isLapYear = false;
return isLapYear;
}
}
}
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
