C# :: Aufgabe #41
14 Lösungen
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
Lösungen:
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;
}
}
}
using System;
namespace Schaltjahresberechnung
{
class Program
{
static void Main(string[] args)
{
// Fenster Titel
Console.Title = "Schaltjahresberechnung";
// Jahr eingeben
int jahr = Convert.ToInt32(Console.ReadLine());
// Jahr überprüfen
if (DateTime.IsLeapYear(jahr))
{
Console.WriteLine("Schaltjahr");
}
else
{
Console.WriteLine("Kein Schaltjahr");
}
Console.ReadKey();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Einsendeaufgabe
{
class Program
{
static void Main(string[] args)
{
int jahr, regel1, regel2, regel3;
Console.WriteLine("\t\tSchaltjahr Rechner\n");
Console.Write("Prüfjahr eingeben: ");
jahr = Convert.ToInt32(Console.ReadLine());
regel1 = jahr % 4;
regel2 = jahr % 100;
regel3 = jahr % 400;
if (regel1 == 0 && regel2 != 0 || regel1 == 0 && regel2 == 0 && regel3 == 0)
Console.WriteLine("Das Jahr {0} war ein Schaltjahr!", jahr);
else
Console.WriteLine("{0} war kein Schaltjahr!", jahr);
}
}
}
public static bool SchaltjahrTest(int jahr)
{
if (jahr % 400 == 0 || jahr % 100 != 0 && jahr % 4 == 0)
return true;
else
return false;
}
public static bool LeapYear(int Year)
{
return (Year % 4 == 0 & (Year % 100 != 0 | Year % 400 == 0));
}
public static bool IstSchaltjahr(int Eingabe)
{
if (Eingabe % 4 == 0 & Eingabe % 100 != 0 | Eingabe % 4 == 0 & Eingabe % 400 == 0)
return true;
else
return false;
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchaltjahrRechner
{
class Program
{
public static bool SchaltjahrCheck(long j)
{
if (j % 4 == 0)
{
if (j % 100 == 0)
{
if (j % 400 == 0)
{
return true;
}
return false;
}
return true;
}
else
{
return false;
}
}
static void Main(string[] args)
{
long jahr;
do
{
Console.Clear();
Console.WriteLine("Geben Sie eine Jahrenzahl ein: ");
} while (!long.TryParse(Console.ReadLine(), out jahr));
bool isSchaltjahr = SchaltjahrCheck(jahr);
if (isSchaltjahr)
{
Console.WriteLine("{0} ist ein Schaltjahr", jahr);
}
else
{
Console.WriteLine("{0} ist kein Schaltjahr", jahr);
}
Console.ReadLine();
}
}
}
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;
}
}
}
Console.Title = "Schaltjahr berechnen";
Console.WriteLine("Bitte Jahreszahl eingeben:");
int schaltjahr = Convert.ToInt32(Console.ReadLine());
if (schaltjahr%100==0 && schaltjahr%400!=0)
{
Console.WriteLine(schaltjahr + " ist kein Schaltjahr!");
}
else if(schaltjahr%4==0)
{
Console.WriteLine(schaltjahr+ " ist ein Schaltjahr");
}else
{
Console.WriteLine(schaltjahr + " ist kein Schaltjahr!");
}public static bool SchaltjahrTest(int jahr)
{
if (jahr % 400 == 0 || jahr % 100 != 0 && jahr % 4 == 0)
return true;
else
return false;
}
private static bool IsLeap(this DateTime date)
{
if (date.Year % 4 != 0)
{
return false;
}
if (date.Year % 100 == 100)
{
return date.Year % 400 == 0;
}
return true;
}
using System;
namespace Application
{
class MainClass
{
public static void Main(string[] args)
{
IstSchaltjahr(Convert.ToInt32(Console.ReadLine()));
}
public static void IstSchaltjahr(int jahr)
{
if (jahr % 400 == 0 || jahr % 4 == 0 && jahr % 100 != 0 )
{
Console.WriteLine("Ist ein Schaltjahr!");
}
else
{
Console.WriteLine("Ist kein Schaltjahr!");
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TrainYourProgrammer39
{
class Program
{
static void Main(string[] args)
{
Console.Write("Geben Sie das Jahr ein, das überprüft werden soll: ");
int jahr = Convert.ToInt32(Console.ReadLine());
bool schaltjahr = false;
if (jahr % 400 == 0)
{
schaltjahr = true;
}
else
{
if (jahr%100 == 0)
{
schaltjahr = false;
}
else if (jahr%4==0)
{
schaltjahr = true;
}
}
if (schaltjahr)
{
Console.WriteLine("Das Jahr {0} ist ein Schaltjahr.", jahr);
}
else
{
Console.WriteLine("Das Jahr {0} ist ein Schaltjahr.", jahr);
}
Console.ReadKey();
}
}
}
static void Aufgabe_41()
{
int jahr;
bool schaltjahr = false;
Console.Write("Welches Jahr soll überprüft werden ob es ein Schaltjahr ist? ");
jahr = Convert.ToInt16(Console.ReadLine());
if (jahr % 4 == 0)
{
schaltjahr = true;
if (jahr % 100 == 0)
{
schaltjahr = false;
}
if (jahr % 400 == 0)
{
schaltjahr = true;
}
}
if (schaltjahr) Console.WriteLine("Das Jahr {0} ist ein Schaltjahr!", jahr);
else Console.WriteLine("Das Jahr {0} ist kein Schaltjahr!", jahr);
}