Zum Inhalt springen

C# Kalenderblatt


MC Smokee

Empfohlene Beiträge

Hallo zusammen,

zu anfang ich bin anfänger im programmieren und möchte keine kompletten Lösungen haben, mir reichen Lösungsansätze und frage lieber einmal mehr nach als ewig dumm zubleiben ^^.

So nun zu meinem Problem. Ich habe mir ein Kalender gebastelt, der mir von den Zeilen her zulang ist und wo noch keine Fehleingaben wie zum Beispiel Buchstaben oder flasche Angaben bezüglich des Monats oder des Jahres abgefangen werden.

Hier mein Quellcode bzw. nur ein kleiner Teil von ihm ^^


 using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;


namespace ConsoleApplication4

{

    class Program

    {

        static void Main(string[] args)

        { }

            private string newresult()

            {

                string result = null;

            // Deklaration von den ganzen Variablen die wir benötigen

            int jahr = 0;

            int monat = 0;

            int tage = 0;

            int zähler = 1;

            //  Anfang der Berechung für die Wochentage und Eingabe von Jahr und Monat

            {

                    //Eingabe von dem gewünschten Jahr und Monat

                    Console.WriteLine("Bitte geben Sie das Jahr ein:    ", jahr);

                    jahr = Convert.ToInt16(Console.ReadLine());


                    Console.WriteLine("Bitte geben Sie den Monat ein:    ", monat);

                    monat = Convert.ToInt16(Console.ReadLine());


                    // Wenn Jahr größer oder gleich 1 und kleiner gleich 3000 und Monat größer oder gleich 1

                    // und Monat kleiner gleich 12

                    if (jahr >= 1 && jahr <= 3000 && monat >= 1 && monat <= 12)

                    {


                        DateTime date = new DateTime(jahr, monat, 1);

                        Console.WriteLine(date.DayOfWeek);

                        tage = DateTime.DaysInMonth(jahr, monat);

                        Console.WriteLine(tage);

                        Console.WriteLine(date);

                        Console.Clear();

                        string einrücken = " ";

                        Console.WriteLine("\n{0,24}Kalender\n{0,31}" + monat + "." + jahr + "\n", einrücken);

                        int i;

                        for (i = 0; i <= 65; i++)

                            Console.Write("*");

                        Console.WriteLine("\n");

                        Console.Write("Montag Dienstag Mittwoch Donnerstag Freitag Samstag Sonntag");

                        Console.WriteLine("\n");


                        //Berechnung für Montag

                        if (date.DayOfWeek == DayOfWeek.Monday)

                        {


                            for (zähler = 1; zähler <= tage; zähler++)

                            {


                                Console.Write("     " + zähler + "\t");

                                if (zähler % 7 == 0)

                                {


                                    Console.WriteLine("\n");

                                }

                            }

                        }


                        //Berechnung für Montag

                        if (date.DayOfWeek == DayOfWeek.Monday)

                        {


                            for (zähler = 1; zähler <= tage; zähler++)

                            {


                                Console.Write("     " + zähler + "\t");

                                if (zähler % 7 == 0)

                                {


                                    Console.WriteLine("\n");

                                }

                            }

                        }


    //Für die restlichen Wochentage habe ich die Berechnungen ausgelassen das sonst der Code hier unübersichtlicher werden würde als er schon ist.


                        Console.WriteLine("\n");

                        for (i = 0; i <= 65; i++)

                            Console.Write("*");

                        Console.WriteLine("\n{0,24}Kalender\n{0,31}" + monat + "." + jahr + "\n", einrücken);

                            }

                    else

                    {

                        Console.WriteLine("Sie haben ein falsches Jahr bzw. einen falschen Monat eingegeben");

                    }

                    Console.ReadLine();  

                return result;

                        }

                }

            }

        }

    }

    }

Mit freundlichen Grüssen

MC Smokee:confused:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich glaube, du hast vergessen, deine Frage(n) zu stellen ;)

Stimmt. Sorry ^^ hab ich total übersehen.

1. Wie kann ich die Berechnungen bezüglich der Wochentage übersichtlicher gestalten?

2. Wie kann ich nach erstellen des Kalenderblattes dem Programm sagen das ich ein neues Kalenderblatt erstellen möchte (momentan bricht das Programm immer ab)?

Hoffe das sind erstmal die einzigen Fragen.

Mfg Smokee

Link zu diesem Kommentar
Auf anderen Seiten teilen

zu 1.

Sehr gut kannst du deine Wochentage übersichtlicher gestalten, wenn du die switch (C#) Switch Funktion benutzt.

Ich habe mich mal ein wenig mit deinem Programm beschäftigt und das Grundgerüst schon mal aufgebaut:

    switch (date.DayOfWeek)

                { 

                    case DayOfWeek.Monday:

                       (Anweisung)

                        break;

                    case DayOfWeek.Tuesday:

                       (Anweisung)

                        break;

                    case DayOfWeek.Wednesday:

                        (Anweisung)

                        break;

                    case DayOfWeek.Thursday:

                          (Anweisung)

                        break;

                    case DayOfWeek.Friday:

                              (Anweisung)

                        break;

                    case DayOfWeek.Saturday:

                          (Anweisung)

                        break;

                    case DayOfWeek.Sunday:

                           (Anweisung)

                        break;


                }

zu 2.

So wie ich das verstanden habe, möchtest du einfach das Programm wiederholen, was du mit einer do-while Schleife machen kannst. http://msdn.microsoft.com/de-de/library/370s1zax(v=vs.80).aspx

Ich hoffe ich konnte dir helfen. ;)

Bearbeitet von Jonas95
Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...