myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   c# project hilfe (https://mygully.com/showthread.php?t=2590721)

bambino24 15.03.12 08:08

c# project hilfe
 
hallo leute

wir müssen in der schule ein project programmieren.
da ich der "abolute" programmier freak bin :dozey: wollte ich fragen ob ihr mir da helfen könnt.

die aufgabe heißt so



über info´s, tipps, vorschläge usw. wäre ich euch sehr dankbar

jon.west 15.03.12 08:29

Wenn ich das richtig verstehe soll eine Ausgabe wie:

==== Januar ====
So Mo Di Mi Do Fr Sa

1 2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

erfolgen?

bambino24 15.03.12 09:09

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

jon.west 15.03.12 09:18

Ist eigentlich kein Hexenwerk, ich versuche es dir nachher mal näher zu erklären ;)

Your_Conscience 15.03.12 09:20

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");
        }
    }
}


jon.west 27.03.12 12:23

Code:

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 ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:07 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.