MC Smokee Geschrieben 28. Dezember 2010 Geschrieben 28. Dezember 2010 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: Zitieren
Klotzkopp Geschrieben 28. Dezember 2010 Geschrieben 28. Dezember 2010 Ich glaube, du hast vergessen, deine Frage(n) zu stellen Zitieren
MC Smokee Geschrieben 28. Dezember 2010 Autor Geschrieben 28. Dezember 2010 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 Zitieren
Jonas95 Geschrieben 28. Dezember 2010 Geschrieben 28. Dezember 2010 (bearbeitet) 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 28. Dezember 2010 von Jonas95 Zitieren
Empfohlene Beiträge
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.