wir müssen in der schule ein project programmieren.
da ich der "abolute" programmier freak bin wollte ich fragen ob ihr mir da helfen könnt.
die aufgabe heißt so
Programmieraufgabe „Kalenderblatt“
Schreiben Sie ein Programm, welches nach Eingabe des Monats (und des Jahres) ein Kalenderblatt für den Monat ausgibt. Der Laender soll von seiner Einführung bis zum Jahr 3000 gültig sein. Das Kalenderblatt soll mit Hilfe von Schleifen erstellt werden. (Bitte keine vorformatierte Ausgaben!) d.h. keine 52 Zeilen vorformatiert! ) Fehleingaben sind abzufangen. Das Programm ist laufend wiederholbar (ohne Neustart) und kann durch einen Beendigungsbefehl verlassen werden.
Als Programmierumgebung ist das Visual Studio für C# zu verwenden.
über info´s, tipps, vorschläge usw. wäre ich euch sehr dankbar
so in der art denke ich es auch
leider weiß es ich es nicht genau (am Montag weiß ich wahrschlich mehr) aber selbst wenn oben die tag nicht stehen wäre ich mehr wie nur zufrieden
Du musst jetzt nur noch die Fehlerabfragen und die Ausgabe für den Kalender hinzufügen.
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int month, year, day;
string read;
Console.WriteLine("Write \"exit\" to exit.\n");
do
{
//get month
Console.Write("month: ");
read = Console.ReadLine();
//ToDo check for errors
month = Convert.ToInt32(read);
//get year
Console.Write("year: ");
read = Console.ReadLine();
//ToDo check for errors
year = Convert.ToInt32(read);
//get day of week of the 1st day of month
DateTime dateValue = new DateTime(year, month, 1); //year, month, day
day = (int)dateValue.DayOfWeek; //sunday = 0, monday = 1, ..., saturday = 6
//if (dateValue.Year >= current year && dateValue.Year <= 3000)
/*print calendar*/
//else print error
} while (Console.ReadLine() != "exit");
}
}
}
public class Kalender
{
//Variablen Deklaration
bool IstSchaltjahr;
//Methode PrüfeAufSchaltjahr() - prüft ob das Jahr ein Schaltjahr ist
public bool PrüfeAufSchaltjahr(int Jahr)
{
if (Jahr % 4 == 0) //alle 4 Jahre,
{
if (!(Jahr % 100 == 0)) //aber alle 100 Jahre nicht,
{
return true;
}
if (Jahr % 400 == 0) //aber alle 400 Jahre wieder
{
return true;
}
}
return false;
}
}
Hiermit kannst du prüfen, ob das Jahr (als int) ein Schaltjahr war.
Code:
public class Kalender
{
//Methode BerechneErstenTag() - berechnet den Wert des ersten Tages im Jahr
//- 0 So. - 1 Mo. - 2 Di. - 3 Mi. - 4 Do. - 5 Fr. - 6 Sa.
public int BerechneErstenTag(int Jahr, int NummerDesMonats, int Eins)
{
this.IstSchaltjahr = PrüfeAufSchaltjahr(Jahr);
double ErsterTag = ((13 * (NummerDesMonats + 10 - (NummerDesMonats + 10) / 13 * 12) - 1) / 5 + Eins + 77 + 5 * (Jahr + (NummerDesMonats - 14) / 12 - (Jahr + (NummerDesMonats -
14) / 12) / 100 * 100) / 4 + (Jahr + (NummerDesMonats - 14) / 12) / 400 - (Jahr + (NummerDesMonats - 14) / 12) / 100 * 2);
ErsterTag = (int)ErsterTag % 7;
return (int)ErsterTag;
}
}
Diese Methode rechnet dir aus, mit welchem Tag das angegeben Jahr (als int) beginnt, bzw. begonnen hat.
Wobei int NummerDesMonats jeweils von 1-12 gesetzt werden muss, aber dazu später mehr, falls du es brauchen solltest