C# :: Aufgabe #41 :: Lösung #1

14 Lösungen Lösungen öffentlich
#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
#1
vote_ok
von hyperion (120 Punkte) - 06.03.2013 um 22:37 Uhr
Quellcode ausblenden C#-Code
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

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben