// Frühlingsbeginn: 21. März
        // Sommerbeginn: 21. Juni
        // Herbstbeginn: 23. September
        // Winterbeginn: 21. Dezember (des aktuellen Jahres)
        static DateTime Beginn(Jahreszeit jahreszeit)
        {
            switch (jahreszeit)
            {
            case Jahreszeit.Frühling:
                return(new DateTime(DateTime.Now.Year, 3, 21));

            case Jahreszeit.Sommer:
                return(new DateTime(DateTime.Now.Year, 6, 21));

            case Jahreszeit.Herbst:
                return(new DateTime(DateTime.Now.Year, 9, 23));

            case Jahreszeit.Winter:
            default:
                return(new DateTime(DateTime.Now.Year, 12, 21));
            }
        }
        // Ausgabe des Jahreszeitenbeginns im heurigen Jahr (astronomisch)
        static void Main(string[] args)
        {
            do
            {
                Console.Write("Gib eine Jahreszeit ein: ");
                Jahreszeit jz = (Jahreszeit)Enum.Parse(typeof(Jahreszeit), Console.ReadLine());

                // Umwandlung vom Enum zu einer Zahl
                int nummer = (int)jz;
                Console.WriteLine($"{jz} ist die {nummer + 1}. Jahreszeit.");

                // Umwandlung von einer Zahl zum Enum
                Jahreszeit nächste = (Jahreszeit)((nummer + 1) % 4);
                Console.WriteLine($"Die nächste Jahreszeit ist {nächste}.");

                DateTime beginnDatum = Beginn(jz);
                Console.WriteLine($"Der {jz} beginnt heuer am {beginnDatum.ToString("d. MMMM yyyy")}.");

                Console.Write("Beenden mit Escape" + Environment.NewLine);
            }while (Console.ReadKey(true).Key != ConsoleKey.Escape);
        }
        static void Main(string[] args)
        {
            String     eingabe   = "";
            bool       eingabeOK = false;
            int        jzindex   = 0;
            int        mindex    = 0;
            Jahreszeit j         = Jahreszeit.fruehling;
            Monat      m         = Monat.februar;

            Console.WriteLine("Bitte gib einen Jahreszeitenindex (1-4) und einen Monatsindex an (1-12):");


            while (!eingabeOK)
            {
                Console.Write("Zunaechst den Jahreszeitenindex: ");
                eingabe   = Console.ReadLine();
                eingabeOK = int.TryParse(eingabe, out jzindex);
                j         = (Jahreszeit)jzindex;

                if ((jzindex < (int)Jahreszeit.fruehling) || (jzindex > (int)Jahreszeit.winter))
                {
                    Console.WriteLine("Index ausserhalb des Bereichs (1-4)");
                    eingabeOK = false;
                }
            }


            eingabeOK = false;
            while (!eingabeOK)
            {
                Console.Write("Nun den Monatsindex: ");
                eingabe   = Console.ReadLine();
                eingabeOK = int.TryParse(eingabe, out mindex);
                m         = (Monat)mindex;

                if ((mindex < (int)Monat.januar) || (mindex > (int)Monat.dezember))
                {
                    Console.WriteLine("Index ausserhalb des Bereichs (1-12)");
                    eingabeOK = false;
                }
            }


            switch (j)
            {
            case Jahreszeit.fruehling:
            {
                Console.Write(Jahreszeit.fruehling + " ist im Monat ");
                switch (m)
                {
                case Monat.maerz:
                {
                    Console.Write(Monat.maerz + "\n");
                    break;
                }

                case Monat.april:
                {
                    Console.Write(Monat.april + "\n");
                    break;
                }

                case Monat.mai:
                {
                    Console.Write(Monat.mai + "\n");
                    break;
                }

                default:
                    Console.Write("Nichts da\n");
                    break;
                }

                break;
            }

            case Jahreszeit.sommer:
            {
                Console.Write(Jahreszeit.sommer + " ist im Monat ");
                switch (m)
                {
                case Monat.juni:
                {
                    Console.Write(Monat.juni + "\n");
                    break;
                }

                case Monat.juli:
                {
                    Console.Write(Monat.juli + "\n");
                    break;
                }

                case Monat.august:
                {
                    Console.Write(Monat.august + "\n");
                    break;
                }

                default:
                    Console.Write("Nichts da\n");
                    break;
                }

                break;
            }

            case Jahreszeit.herbst:
            {
                Console.Write(Jahreszeit.herbst + " ist im Monat ");
                switch (m)
                {
                case Monat.september:
                {
                    Console.Write(Monat.september + "\n");
                    break;
                }

                case Monat.oktober:
                {
                    Console.Write(Monat.oktober + "\n");
                    break;
                }

                case Monat.november:
                {
                    Console.Write(Monat.november + "\n");
                    break;
                }

                default:
                    Console.Write("Nichts da\n");
                    break;
                }

                break;
            }

            case Jahreszeit.winter:
            {
                Console.Write(Jahreszeit.winter + " ist im Monat ");
                switch (m)
                {
                case Monat.dezember:
                {
                    Console.Write(Monat.dezember + "\n");
                    break;
                }

                case Monat.januar:
                {
                    Console.Write(Monat.januar + "\n");
                    break;
                }

                case Monat.februar:
                {
                    Console.Write(Monat.februar + "\n");
                    break;
                }

                default:
                    Console.Write("Nichts da\n");
                    break;
                }

                break;
            }


            default:
                break;
            }

            Console.ReadKey();
        }