C# :: Aufgabe #300 :: Lösung #2

4 Lösungen Lösungen öffentlich
#300

Welcher Tag ist morgen?

Anfänger - C# von DragStar - 06.04.2020 um 08:30 Uhr
Verfassen Sie ein Programm, welches nach Eingabe von Tag, Monat und Jahr das Datum des nächsten Tages ausgibt.
Es sollen Monats- und Jahreswechsel, sowie Schaltjahre berücksichtigt werden.
#2
vote_ok
von soma (150 Punkte) - 19.04.2020 um 21:54 Uhr
Das ganze besticht nicht durch Eleganz, aber es funktioniert.

Quellcode ausblenden C#-Code
using System;

namespace Naechster_Tag
{
    class Program
    {
        static void Main(string[] args)
        {
            int tag, monat, jahr, weiter;
            weiter = 1;

            

            while (weiter == 1)
            {
                //Abfrage Jahr
                Console.WriteLine("Bitte das Jahr eingeben:");
                jahr = int.Parse(Console.ReadLine());
                //Abfrage Monat
                Console.WriteLine("Bitte den Monat eingeben (1 - 12):");
                monat = int.Parse(Console.ReadLine());
                //Abfrage Tag Februar Schaltjahr
                if (monat == 2 && (jahr % 4 == 0))
                    {
                        Console.WriteLine("Bitte den Tag eingeben (1 - 29):");
                        tag = int.Parse(Console.ReadLine());
                    }
                //Abfrage Tag Februar normales Jahr
                else if (monat == 2 && (jahr % 4 != 0))
                    {
                        Console.WriteLine("Bitte den Tag eingeben (1 - 28):");
                        tag = int.Parse(Console.ReadLine());
                    }
                //Abfrage Tag April, Juni, September, November
                else if (monat == 4 || monat == 6 || monat == 9 || monat == 11)
                    {
                    Console.WriteLine("Bitte den Tag eingeben (1 - 30):");
                    tag = int.Parse(Console.ReadLine());
                    }
                //Abfrage Tag Januar, März, Mai, Juli, August, Oktober, Dezember
                else
                    {
                        Console.WriteLine("Bitte den Tag eingeben (1 - 31):");
                        tag = int.Parse(Console.ReadLine());
                    }

                //Ausgabe gewähltes Datum
                Console.WriteLine("Das gewählte Datum lautet: " + tag + "." + monat + "." + jahr + ".");

                //Ausgabe Folgedatum
                //Nicht existente Monate und Tage
                if ((monat < 1) || (monat > 12) || (tag < 1) || (tag > 31))
                {
                    Console.WriteLine("Haha! Schlaumeier!");
                }
                //28. Februar in Schaltjahr
                else if ((tag + 1 == 29) && (monat == 2) && (jahr % 4 == 0))
                {
                    Console.WriteLine("Das Datum des nächsten Tages lautet " + (tag + 1) + "." + monat + "." + jahr + ".");
                }
                //29. Februar in Schaltjahr
                else if ((tag + 1 == 30) && (monat == 2) && (jahr % 4 == 0))
                {
                    Console.WriteLine("Das Datum des nächsten Tages lautet 1.3." + jahr + ".");
                }
                //28. Februar in normalem Jahr
                else if ((tag + 1 == 29) && (monat == 2))
                {
                    Console.WriteLine("Das Datum des nächsten Tages lautet 1.3." + jahr + ".");
                }
                //Nicht existente Daten Februar
                else if ((tag >= 29) && (monat == 2))
                {
                    Console.WriteLine("Haha! Schlaumeier!");
                }
                //30. April, Juni, September, November
                else if ((tag + 1 == 31) && (monat == 4 || monat == 6 || monat == 9 || monat == 11))
                {
                    Console.WriteLine("Das Datum des nächsten Tages lautet 1." + (monat + 1) + "." + (jahr) + ".");
                }
                //Nicht existente Daten in April, Juni, September, November
                else if ((tag > 30) && (monat == 4 || monat == 6 || monat == 9 || monat == 11))
                {
                    Console.WriteLine("Haha! Schlaumeier!");
                }
                //31. Januar, März, Mai, Juli, August, Oktober
                else if ((tag + 1 == 32) && (monat != 12))
                {
                    Console.WriteLine("Das Datum des nächsten Tages lautet 1." + (monat + 1) + "." + (jahr) + ".");
                }
                //31. Dezember
                else if ((tag + 1 == 32) && (monat ==12))
                {
                    Console.WriteLine("Das Datum des nächsten Tages lautet 1.1." + (jahr + 1));
                }
                //Sonstige Daten
                else
                {
                    Console.WriteLine("Das Datum des nächsten Tages lautet " + (tag + 1) + "." + monat + "." + jahr + ".");
                }

                Console.WriteLine("1 für weiter, 0 zum Beenden.");
                weiter = int.Parse(Console.ReadLine());
            }
        }
    }
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

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

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.