Beispiel #1
0
 public override void TrageEinIn(KalenderJahr dasJahr)
 {
     if (dasJahr.Jahreszahl() != _datum.Year) {
         return;
     }
     dasJahr.GibMonate()[_datum.Month-1].GibTage()[_datum.Day-1].TrageEin(this, GibEintragText(dasJahr));
 }
Beispiel #2
0
        public void EintraegeInTageszeilenAusgabe()
        {
            KalenderJahr jahr = new KalenderJahr(2012);
            List<Eintrag> meineEintraege = Eintrag.LeseEintraegeAusDatei("testfixtures/testeintraege.xml");
            jahr.TrageEin(ref meineEintraege);
            int eingabemodus = 4;   //XXX: das sollte nicht nötig sein
            Ausgabe ausgabe = new TageszeilenAusgabe(ref jahr, eingabemodus, true);
            ausgabe.setzeTestModus(true);
            ausgabe.gibAus();
            StreamReader streamReader = new StreamReader(ausgabe.DateiName);
            string text = streamReader.ReadToEnd();
            streamReader.Close();

            Assert.IsTrue(text.Length > 0, "Ausgabe ist leer");
            Assert.IsTrue(text.IndexOf("2012") > -1, "Jahreszahl kommt nicht vor");
            int positionJanGeburtstag = text.IndexOf("Januar Geburtstag");
            int positionDezGeburtstag = text.IndexOf("Dezember Geburtstag");
            int positionTermin = text.IndexOf("Termin");
            Assert.IsTrue(positionJanGeburtstag > -1, "JanuarGeburtstag ist nicht eingetragen");
            Assert.IsTrue(positionDezGeburtstag > -1, "DezemberGeburtstag ist nicht eingetragen");
            Assert.IsTrue(positionTermin > -1, "Termin ist nicht eingetragen");

            Assert.IsTrue(text[positionJanGeburtstag-4] == '3' &&
                          text[positionJanGeburtstag-3] == '0', "JanuarGeburtstag steht an der falschen Stelle");
            Assert.IsTrue(text[positionDezGeburtstag-4] == '3' &&
                          text[positionDezGeburtstag-3] == '0', "DezemberGeburtstag steht an der falschen Stelle");
            Assert.IsTrue(text[positionTermin-4] == '2' &&
                          text[positionTermin-3] == '3', "Termin steht an der falschen Stelle");
            int positionFebruar = text.IndexOf(HilfsKonstrukte.monatsNamen[1]);
            int positionMaerz = text.IndexOf(HilfsKonstrukte.monatsNamen[2]);
            Assert.IsTrue(positionTermin > positionFebruar &&
                          positionTermin < positionMaerz, "Termin steht an der falschen Stelle");
        }
Beispiel #3
0
        public void TageszeilenAusgabe()
        {
            KalenderJahr jahr = new KalenderJahr(2012);
            int eingabemodus = 3;   //XXX: das sollte nicht nötig sein
            Ausgabe ausgabe = new TageszeilenAusgabe(ref jahr, eingabemodus, false);
            ausgabe.setzeTestModus(true);
            ausgabe.gibAus();
            StreamReader streamReader = new StreamReader(ausgabe.DateiName);
            string text = streamReader.ReadToEnd();
            streamReader.Close();

            Assert.IsTrue(text.Length > 0, "Ausgabe ist leer");
            Assert.IsTrue(text.IndexOf("2012") > -1, "Jahreszahl fehlt");
            int positionFebruar = text.IndexOf(HilfsKonstrukte.monatsNamen[1]);
            int positionMaerz = text.IndexOf(HilfsKonstrukte.monatsNamen[2]);
            Assert.IsTrue(positionFebruar > -1, "Februar-Markierung fehlt");
            Assert.IsTrue(positionMaerz > -1, "März-Markierung fehlt");
            Assert.IsTrue(positionFebruar < positionMaerz);

            //pruefe ob Februar 29 Tage hat
            Assert.IsTrue(text.IndexOf("29",positionFebruar) < positionMaerz, "29 fehlt im Februar");

            //pruefe ob Linie nach Sonntag
            int positionSO = text.IndexOf(HilfsKonstrukte.wochenTagNamenKurz[6], positionMaerz);
            positionSO = text.IndexOf('\n', positionSO);  //bis zur nächstenZeile
            Assert.AreEqual(text.IndexOf("-------------", positionSO), positionSO + 1);

            //pruefeWochentag 1.12.
            int wochenTag1201 = jahr.GibMonate()[11].GibTage()[0].GibWochentag();
            string wochenTagAlsString = HilfsKonstrukte.wochenTagNamenKurz[wochenTag1201];
            int positionDezember = text.IndexOf(HilfsKonstrukte.monatsNamen[11]);
            positionDezember = text.IndexOf('\n', positionDezember);
            Assert.AreEqual(text.IndexOf(wochenTagAlsString, positionDezember), positionDezember + 1);
        }
Beispiel #4
0
        public void Tag()
        {
            KalenderJahr jahr = new KalenderJahr(2012);

            Assert.AreEqual(jahr.GibMonate()[0].GibTage().Count, 31);
            Assert.AreEqual(jahr.GibMonate()[0].GibTage()[0].GibIndex(), 1);
            Assert.AreEqual(jahr.GibMonate()[0].GibTage()[30].GibIndex(), 31);
        }
Beispiel #5
0
        public void KalenderJahr()
        {
            KalenderJahr jahr = new KalenderJahr(2012);

            Assert.AreEqual(jahr.GibMonate().Count, HilfsKonstrukte.MONATE_IM_JAHR);
            Assert.AreEqual(jahr.IstSchaltjahr(), true);
            Assert.AreEqual(jahr.GibTage().Count, HilfsKonstrukte.TAGE_IM_JAHR + 1);
        }
Beispiel #6
0
 public override void TrageEinIn(KalenderJahr dasJahr)
 {
     if (dasJahr.Jahreszahl() != _datum.Year)
     {
         return;
     }
     dasJahr.GibMonate()[_datum.Month - 1].GibTage()[_datum.Day - 1].TrageEin(this, GibEintragText(dasJahr));
 }
Beispiel #7
0
        public override string GibEintragText(KalenderJahr dasJahr)
        {
            string start = "Geburtstag ";

            if (_geburtsjahr != 0)
            {
                return(start + GibTitel() + " (" + (dasJahr.Jahreszahl() - _geburtsjahr) + ")");
            }
            return(start + GibTitel());
        }
Beispiel #8
0
        public void Geburtstag()
        {
            List <Eintrag> meineEintraege = Eintrag.LeseEintraegeAusDatei("testfixtures/testeintraege.xml");
            KalenderJahr   jahr2012       = new KalenderJahr(2012);

            jahr2012.TrageEin(ref meineEintraege);
            //Angabe des Jahrs ist nicht nötig
            Assert.AreEqual(jahr2012.GibMonate()[11].GibTage()[30].EintraegeAlsString(), "Geburtstag Aisha");
            //korrekte Anzeige des Alters
            Assert.AreEqual(jahr2012.GibMonate()[3].GibTage()[29].EintraegeAlsString(), "Geburtstag Barbara (" + (2012 - 1918) + ")");
        }
Beispiel #9
0
        public override void TrageEinIn(KalenderJahr dasJahr)
        {
            List <Tag> tageImMonat = dasJahr.GibMonate()[_monat - 1].GibTage();
            int        index       = tageImMonat.Count - 1;
            Tag        letzterTag  = tageImMonat[index];

            while (letzterTag.GibWochentag() != _wochentag)
            {
                index--;
                letzterTag = tageImMonat[index];
            }
            letzterTag.TrageEin(this, GibEintragText(dasJahr));
        }
Beispiel #10
0
        public void StartWochentage()
        {
            KalenderJahr jahr = new KalenderJahr(2012);

            Assert.AreEqual(jahr.StartWochenTag(), 6);
            jahr = new KalenderJahr(1583);
            Assert.AreEqual(jahr.StartWochenTag(), 5);
            jahr = new KalenderJahr(1899);
            Assert.AreEqual(jahr.StartWochenTag(), 6);
            jahr = new KalenderJahr(1900);
            Assert.AreEqual(jahr.StartWochenTag(), 0);
            jahr = new KalenderJahr(1981);
            Assert.AreEqual(jahr.StartWochenTag(), 3);
        }
Beispiel #11
0
        public void Monat()
        {
            KalenderJahr jahr = new KalenderJahr(2012);

            Assert.AreEqual(jahr.GibMonate()[0].GibTage().Count, 31);
            Assert.AreEqual(jahr.GibMonate()[1].GibTage().Count, 29);
            Assert.AreEqual(jahr.GibMonate()[2].GibTage().Count, 31);
            Assert.AreEqual(jahr.GibMonate()[3].GibTage().Count, 30);
            Assert.AreEqual(jahr.GibMonate()[0].GibIndex(), 0);
            Assert.AreEqual(jahr.GibMonate()[HilfsKonstrukte.MONATE_IM_JAHR - 1].GibIndex(), HilfsKonstrukte.MONATE_IM_JAHR - 1);
            Tag fakeTag = new Tag(32, 0, 32);

            jahr.GibMonate()[0].FuegeTagAn(ref fakeTag);
            Assert.AreEqual(jahr.GibMonate()[0].GibTage().Count, 32);
        }
Beispiel #12
0
        public void Schaltjahre()
        {
            KalenderJahr jahr = new KalenderJahr(2012);

            Assert.AreEqual(jahr.IstSchaltjahr(), true);
            jahr = new KalenderJahr(2011);
            Assert.AreEqual(jahr.IstSchaltjahr(), false);
            jahr = new KalenderJahr(1900);
            Assert.AreEqual(jahr.IstSchaltjahr(), false);
            jahr = new KalenderJahr(1984);
            Assert.AreEqual(jahr.IstSchaltjahr(), true);
            jahr = new KalenderJahr(2000);
            Assert.AreEqual(jahr.IstSchaltjahr(), true);
            jahr = new KalenderJahr(2100);
            Assert.AreEqual(jahr.IstSchaltjahr(), false);
        }
Beispiel #13
0
        public void JaehrlichesEreignisAnFestemTermin()
        {
            List <Eintrag> meineEintraege = Eintrag.LeseEintraegeAusDatei("testfixtures/testeintraege.xml");
            KalenderJahr   jahr2012       = new KalenderJahr(2012);

            jahr2012.TrageEin(ref meineEintraege);
            Assert.AreEqual(jahr2012.GibMonate()[0].GibTage()[29].EintraegeAlsString(), "Januar Geburtstag");

            //teste, ob auch in anderem Jahr eingetragen
            KalenderJahr jahr2013 = new KalenderJahr(2013);

            jahr2013.TrageEin(ref meineEintraege);
            Assert.AreEqual(jahr2013.GibMonate()[0].GibTage()[29].EintraegeAlsString(), "Januar Geburtstag");

            Assert.IsTrue(jahr2012.GibMonate()[1].GibTage()[28].EintraegeAlsString().Contains("Schaltjahr Geburtstag"), "Schaltjahr Geburtstag wurde nicht korrekt eingetragen");
            //jaehrliche Ereignisse werden auf den 28ten übertragen
            Assert.IsTrue(jahr2013.GibMonate()[1].GibTage()[27].EintraegeAlsString().Contains("Schaltjahr Geburtstag"), "jaehrlicher Termine am Schalttag wurde nicht korrekt auf den 28ten übetragen");
        }
Beispiel #14
0
        public void EinmaligerTermin()
        {
            List <Eintrag> meineEintraege = Eintrag.LeseEintraegeAusDatei("testfixtures/testeintraege.xml");

            KalenderJahr jahr2012 = new KalenderJahr(2012);

            jahr2012.TrageEin(ref meineEintraege);
            Assert.AreEqual(jahr2012.GibMonate()[1].GibTage()[22].EintraegeAlsString(), "Termin");

            //teste, ob nicht in anderem Jahr eingetragen
            KalenderJahr jahr2013 = new KalenderJahr(2013);

            jahr2013.TrageEin(ref meineEintraege);
            Assert.AreEqual(jahr2013.GibMonate()[1].GibTage()[22].EintraegeAlsString(), "");

            Assert.IsTrue(jahr2012.GibMonate()[1].GibTage()[28].EintraegeAlsString().Contains("Schalttagtermin"), "Schalttagtermin wurde nicht korrekt eingetragen");
            //Eimalige Termine sollen nicht auf den 28ten übertragen werden sondern als nicht valide ignoriert werden
            Assert.IsFalse(jahr2013.GibMonate()[1].GibTage()[27].EintraegeAlsString().Contains("Schalttagtermin"), "Einmalige Termine wurde auf den 28ten übetragen, soll aber als nicht valide gelten");
        }
Beispiel #15
0
        public override void TrageEinIn(KalenderJahr dasJahr)
        {
            List <Tag> tageImMonat = dasJahr.GibMonate()[_monat - 1].GibTage();
            int        index       = 0;
            Tag        ersterTag   = tageImMonat[index];

            while (ersterTag.GibWochentag() != _wochentag)
            {
                index++;
                ersterTag = tageImMonat[index];
            }
            index = index + (_n - 1) * HilfsKonstrukte.TAGE_PRO_WOCHE;
            if (index >= tageImMonat.Count)
            {
                return;
            }
            Tag nterTag = tageImMonat[index];

            nterTag.TrageEin(this, GibEintragText(dasJahr));
        }
Beispiel #16
0
        public void TageszeilenAusgabe()
        {
            KalenderJahr jahr         = new KalenderJahr(2012);
            int          eingabemodus = 3; //XXX: das sollte nicht nötig sein
            Ausgabe      ausgabe      = new TageszeilenAusgabe(ref jahr, eingabemodus, false);

            ausgabe.setzeTestModus(true);
            ausgabe.gibAus();
            StreamReader streamReader = new StreamReader(ausgabe.DateiName);
            string       text         = streamReader.ReadToEnd();

            streamReader.Close();

            Assert.IsTrue(text.Length > 0, "Ausgabe ist leer");
            Assert.IsTrue(text.IndexOf("2012") > -1, "Jahreszahl fehlt");
            int positionFebruar = text.IndexOf(HilfsKonstrukte.monatsNamen[1]);
            int positionMaerz   = text.IndexOf(HilfsKonstrukte.monatsNamen[2]);

            Assert.IsTrue(positionFebruar > -1, "Februar-Markierung fehlt");
            Assert.IsTrue(positionMaerz > -1, "März-Markierung fehlt");
            Assert.IsTrue(positionFebruar < positionMaerz);

            //pruefe ob Februar 29 Tage hat
            Assert.IsTrue(text.IndexOf("29", positionFebruar) < positionMaerz, "29 fehlt im Februar");

            //pruefe ob Linie nach Sonntag
            int positionSO = text.IndexOf(HilfsKonstrukte.wochenTagNamenKurz[6], positionMaerz);

            positionSO = text.IndexOf('\n', positionSO);  //bis zur nächstenZeile
            Assert.AreEqual(text.IndexOf("-------------", positionSO), positionSO + 1);

            //pruefeWochentag 1.12.
            int    wochenTag1201      = jahr.GibMonate()[11].GibTage()[0].GibWochentag();
            string wochenTagAlsString = HilfsKonstrukte.wochenTagNamenKurz[wochenTag1201];
            int    positionDezember   = text.IndexOf(HilfsKonstrukte.monatsNamen[11]);

            positionDezember = text.IndexOf('\n', positionDezember);
            Assert.AreEqual(text.IndexOf(wochenTagAlsString, positionDezember), positionDezember + 1);
        }
Beispiel #17
0
        public void EintraegeInTageszeilenAusgabe()
        {
            KalenderJahr   jahr           = new KalenderJahr(2012);
            List <Eintrag> meineEintraege = Eintrag.LeseEintraegeAusDatei("testfixtures/testeintraege.xml");

            jahr.TrageEin(ref meineEintraege);
            int     eingabemodus = 4; //XXX: das sollte nicht nötig sein
            Ausgabe ausgabe      = new TageszeilenAusgabe(ref jahr, eingabemodus, true);

            ausgabe.setzeTestModus(true);
            ausgabe.gibAus();
            StreamReader streamReader = new StreamReader(ausgabe.DateiName);
            string       text         = streamReader.ReadToEnd();

            streamReader.Close();

            Assert.IsTrue(text.Length > 0, "Ausgabe ist leer");
            Assert.IsTrue(text.IndexOf("2012") > -1, "Jahreszahl kommt nicht vor");
            int positionJanGeburtstag = text.IndexOf("Januar Geburtstag");
            int positionDezGeburtstag = text.IndexOf("Dezember Geburtstag");
            int positionTermin        = text.IndexOf("Termin");

            Assert.IsTrue(positionJanGeburtstag > -1, "JanuarGeburtstag ist nicht eingetragen");
            Assert.IsTrue(positionDezGeburtstag > -1, "DezemberGeburtstag ist nicht eingetragen");
            Assert.IsTrue(positionTermin > -1, "Termin ist nicht eingetragen");

            Assert.IsTrue(text[positionJanGeburtstag - 4] == '3' &&
                          text[positionJanGeburtstag - 3] == '0', "JanuarGeburtstag steht an der falschen Stelle");
            Assert.IsTrue(text[positionDezGeburtstag - 4] == '3' &&
                          text[positionDezGeburtstag - 3] == '0', "DezemberGeburtstag steht an der falschen Stelle");
            Assert.IsTrue(text[positionTermin - 4] == '2' &&
                          text[positionTermin - 3] == '3', "Termin steht an der falschen Stelle");
            int positionFebruar = text.IndexOf(HilfsKonstrukte.monatsNamen[1]);
            int positionMaerz   = text.IndexOf(HilfsKonstrukte.monatsNamen[2]);

            Assert.IsTrue(positionTermin > positionFebruar &&
                          positionTermin < positionMaerz, "Termin steht an der falschen Stelle");
        }
Beispiel #18
0
        public static int Main(string[] args)
        {
            bool debug        = false;
            int  eingabejahr  = 0;
            int  eingabemodus = 0;

            if (args.Length == 0) //Wenn keine Argumente übergeben werden Anzeige Normaler Start
            {
                Console.WriteLine("Normaler Programm Start");
                debug = false;
            }
            else
            {
                if (args[0] == "debug") //Wenn Argument übergeben worden, prüfen ob debug erwünscht ist
                {
                    Console.WriteLine("Programm Start mit debug Mode. Anzahl der übergebenen Parameter: " + args.Length);
                    debug = true;
                }
            }

            Console.WriteLine("Das Programm berechnet Kalender für die Jahre 1583 bis 4000");
            Console.Write("Jahr eingeben:  ");

            bool eingabeOk = false;

            do
            {
                string eingabe = Console.ReadLine(); //erstmal als string speichern, damit auch eigegebene Buchstaben kein Problem sind
                if (!int.TryParse(eingabe, out eingabejahr))
                {
                    Console.WriteLine("Falsche Eingabe, da Buchstaben nicht möglich sind.");
                }
                else if ((eingabejahr < 1583) || (eingabejahr > 4000))
                {
                    Console.WriteLine("Falsche Eingabe. Jahr ist nicht im gueltigen Bereich.");
                }
                else
                {
                    eingabeOk = true;
                }
                if (!eingabeOk)
                {
                    Console.Write("Bitte geben sie das Jahr erneut ein:  ");
                }
            } while (!eingabeOk);

            Console.Write("Soll die Ausgabe \n1) Monatsblock einspaltig oder\n2) Monatsblock zweispaltig oder\n3) Zeilenweise oder\n4) Zeilenweise mit Eintraegen oder\n5) gelatexed oder\n6) als HTML sein?  ");
            eingabeOk = false;
            do
            {
                string eingabe = Console.ReadLine();
                if (!int.TryParse(eingabe, out eingabemodus))
                {
                    Console.WriteLine("Falsche Eingabe, da Buchstaben nicht möglich sind.");
                }
                else if ((eingabemodus < 1) || (eingabemodus > 6))
                {
                    Console.WriteLine("Falsche Eingabe. Modus ist nicht im gueltigen Bereich.");
                }
                else
                {
                    eingabeOk = true;
                }
                if (!eingabeOk)
                {
                    Console.Write("Bitte geben sie den Modus erneut ein:  ");
                }
            } while (!eingabeOk);
            Console.WriteLine("");


            //Eintrag Experimente
            List <Eintrag> eintraege = leseEintraege(debug); //Aufruf der leseEintraege Funktion mit Übergabe der debug Variablen

            KalenderJahr kalenderJahr = new KalenderJahr(eingabejahr);

            kalenderJahr.TrageEin(ref eintraege);

            Ausgabe ausgabe = null;

            switch (eingabemodus)
            {
            case 1: ausgabe = new MonatsBlockAusgabe(ref kalenderJahr, eingabemodus);
                break;

            case 2: ausgabe = new MonatsBlockAusgabe2Spaltig(ref kalenderJahr, eingabemodus);
                break;

            case 3: ausgabe = new TageszeilenAusgabe(ref kalenderJahr, eingabemodus, false);
                break;

            case 4: ausgabe = new TageszeilenAusgabe(ref kalenderJahr, eingabemodus, true);
                break;

            case 5: ausgabe = new LatexTageszeilenAusgabe(ref kalenderJahr);
                break;

            case 6: ausgabe = new htmlTageszeilenAusgabe(ref kalenderJahr);
                break;
            }
            ausgabe.gibAus();

#if DEBUG
            if (debug)
            {
                ausgabeTest(eingabejahr, eingabemodus, debug); //Aufruf der Testfunktion mit Übergabe der debug Variable
            }
#endif

            //Erwartet Eingabe vor Beendigung des Programms
            Console.ReadLine();
            return(0);
        } //ende main()
Beispiel #19
0
 public Ausgabe(ref KalenderJahr dasJahr, int eingabemodus) //Konstruktor der Klasse Ausgabe, übergibt zwei int werte von main.cs Datei an ausgabe.cs
 {
     _jahr  = dasJahr;
     _modus = eingabemodus;
 }
Beispiel #20
0
        public override void TrageEinIn(KalenderJahr dasJahr)
        {
            int korrigierterTag = HilfsKonstrukte.Korrigiere29zu28inNichtSchaltjahrFebruar(dasJahr.Jahreszahl(), _monat, _tag);

            dasJahr.GibMonate()[_monat - 1].GibTage()[korrigierterTag - 1].TrageEin(this, GibEintragText(dasJahr));
        }
Beispiel #21
0
 public htmlTageszeilenAusgabe(ref KalenderJahr dasJahr)
     : base(ref dasJahr, 6)
 {
 }
Beispiel #22
0
        public void JaehrlichesEreignisAnFestemTermin()
        {
            List<Eintrag> meineEintraege = Eintrag.LeseEintraegeAusDatei("testfixtures/testeintraege.xml");
            KalenderJahr jahr2012 = new KalenderJahr(2012);
            jahr2012.TrageEin(ref meineEintraege);
            Assert.AreEqual(jahr2012.GibMonate()[0].GibTage()[29].EintraegeAlsString(), "Januar Geburtstag");

            //teste, ob auch in anderem Jahr eingetragen
            KalenderJahr jahr2013 = new KalenderJahr(2013);
            jahr2013.TrageEin(ref meineEintraege);
            Assert.AreEqual(jahr2013.GibMonate()[0].GibTage()[29].EintraegeAlsString(), "Januar Geburtstag");

            Assert.IsTrue(jahr2012.GibMonate()[1].GibTage()[28].EintraegeAlsString().Contains("Schaltjahr Geburtstag"), "Schaltjahr Geburtstag wurde nicht korrekt eingetragen");
            //jaehrliche Ereignisse werden auf den 28ten übertragen
            Assert.IsTrue(jahr2013.GibMonate()[1].GibTage()[27].EintraegeAlsString().Contains("Schaltjahr Geburtstag"), "jaehrlicher Termine am Schalttag wurde nicht korrekt auf den 28ten übetragen");
        }
Beispiel #23
0
 public virtual string GibEintragText(KalenderJahr dasJahr)
 {
     return(GibTitel());
 }
Beispiel #24
0
 public override void TrageEinIn(KalenderJahr dasJahr)
 {
     List<Tag> tageImMonat = dasJahr.GibMonate()[_monat-1].GibTage();
     int index = tageImMonat.Count-1;
     Tag letzterTag = tageImMonat[index];
     while (letzterTag.GibWochentag() != _wochentag) {
         index--;
         letzterTag = tageImMonat[index];
     }
     letzterTag.TrageEin(this, GibEintragText(dasJahr));
 }
Beispiel #25
0
        public static int Main(string[] args)
        {
            bool debug = false;
            int eingabejahr = 0;
            int eingabemodus = 0;

            if (args.Length == 0) //Wenn keine Argumente übergeben werden Anzeige Normaler Start
            {
                Console.WriteLine("Normaler Programm Start");
                debug = false;
            }
            else
            {
                if (args[0] == "debug") //Wenn Argument übergeben worden, prüfen ob debug erwünscht ist
                {
                    Console.WriteLine("Programm Start mit debug Mode. Anzahl der übergebenen Parameter: " + args.Length);
                    debug = true;
                }
            }

            Console.WriteLine("Das Programm berechnet Kalender für die Jahre 1583 bis 4000");
            Console.Write("Jahr eingeben:  ");

            bool eingabeOk = false;
            do
            {
                string eingabe = Console.ReadLine(); //erstmal als string speichern, damit auch eigegebene Buchstaben kein Problem sind
                if (!int.TryParse(eingabe, out eingabejahr))
                {
                    Console.WriteLine("Falsche Eingabe, da Buchstaben nicht möglich sind.");
                }
                else if ((eingabejahr < 1583) || (eingabejahr > 4000))
                {
                    Console.WriteLine("Falsche Eingabe. Jahr ist nicht im gueltigen Bereich.");
                }
                else
                {
                    eingabeOk = true;
                }
                if (!eingabeOk)
                {
                    Console.Write("Bitte geben sie das Jahr erneut ein:  ");
                }
            } while (!eingabeOk);

            Console.Write("Soll die Ausgabe \n1) Monatsblock einspaltig oder\n2) Monatsblock zweispaltig oder\n3) Zeilenweise oder\n4) Zeilenweise mit Eintraegen oder\n5) gelatexed oder\n6) als HTML sein?  ");
            eingabeOk = false;
            do
            {
                string eingabe = Console.ReadLine();
                if (!int.TryParse(eingabe, out eingabemodus))
                {
                    Console.WriteLine("Falsche Eingabe, da Buchstaben nicht möglich sind.");
                }
                else if ((eingabemodus < 1) || (eingabemodus > 6))
                {
                    Console.WriteLine("Falsche Eingabe. Modus ist nicht im gueltigen Bereich.");
                }
                else
                {
                    eingabeOk = true;
                }
                if (!eingabeOk)
                {
                    Console.Write("Bitte geben sie den Modus erneut ein:  ");
                }
            } while (!eingabeOk);
            Console.WriteLine("");


            //Eintrag Experimente
            List<Eintrag> eintraege = leseEintraege(debug); //Aufruf der leseEintraege Funktion mit Übergabe der debug Variablen

            KalenderJahr kalenderJahr = new KalenderJahr(eingabejahr);
            kalenderJahr.TrageEin(ref eintraege);

            Ausgabe ausgabe = null;
            switch (eingabemodus)
            {
                case 1: ausgabe = new MonatsBlockAusgabe(ref kalenderJahr, eingabemodus);
                    break;
                case 2: ausgabe = new MonatsBlockAusgabe2Spaltig(ref kalenderJahr, eingabemodus);
                    break;
                case 3: ausgabe = new TageszeilenAusgabe(ref kalenderJahr, eingabemodus, false);
                    break;
                case 4: ausgabe = new TageszeilenAusgabe(ref kalenderJahr, eingabemodus, true);
                    break;
                case 5: ausgabe = new LatexTageszeilenAusgabe(ref kalenderJahr);
                    break;
                case 6: ausgabe = new htmlTageszeilenAusgabe(ref kalenderJahr);
                    break;
            }
            ausgabe.gibAus();

#if DEBUG
            if (debug) {
                ausgabeTest(eingabejahr, eingabemodus, debug); //Aufruf der Testfunktion mit Übergabe der debug Variable
            }
#endif

            //Erwartet Eingabe vor Beendigung des Programms
            Console.ReadLine();
            return 0;
        } //ende main()
Beispiel #26
0
        public void EinmaligerTermin()
        {
            List<Eintrag> meineEintraege = Eintrag.LeseEintraegeAusDatei("testfixtures/testeintraege.xml");

            KalenderJahr jahr2012 = new KalenderJahr(2012);
            jahr2012.TrageEin(ref meineEintraege);
            Assert.AreEqual(jahr2012.GibMonate()[1].GibTage()[22].EintraegeAlsString(), "Termin");

            //teste, ob nicht in anderem Jahr eingetragen
            KalenderJahr jahr2013 = new KalenderJahr(2013);
            jahr2013.TrageEin(ref meineEintraege);
            Assert.AreEqual(jahr2013.GibMonate()[1].GibTage()[22].EintraegeAlsString(), "");

            Assert.IsTrue(jahr2012.GibMonate()[1].GibTage()[28].EintraegeAlsString().Contains("Schalttagtermin"), "Schalttagtermin wurde nicht korrekt eingetragen");
            //Eimalige Termine sollen nicht auf den 28ten übertragen werden sondern als nicht valide ignoriert werden
            Assert.IsFalse(jahr2013.GibMonate()[1].GibTage()[27].EintraegeAlsString().Contains("Schalttagtermin"), "Einmalige Termine wurde auf den 28ten übetragen, soll aber als nicht valide gelten");
        }
Beispiel #27
0
 //Konstruktor der Klasse Ausgabe, übergibt zwei int werte von main.cs Datei an ausgabe.cs
 public Ausgabe(ref KalenderJahr dasJahr, int eingabemodus)
 {
     _jahr = dasJahr;
     _modus = eingabemodus;
 }
Beispiel #28
0
 public abstract void TrageEinIn(KalenderJahr dasJahr);
Beispiel #29
0
 public virtual string GibEintragText(KalenderJahr dasJahr)
 {
     return GibTitel();
 }
Beispiel #30
0
 public abstract void TrageEinIn(KalenderJahr dasJahr);
Beispiel #31
0
        private const int SPALTEN_BREITE = 3 * 7 + 10; //3*7 ist ein Monat breit

        public MonatsBlockAusgabe2Spaltig(ref KalenderJahr dasJahr, int eingabemodus)
            : base(ref dasJahr, eingabemodus)
        {
        }
Beispiel #32
0
 public void KalenderJahr()
 {
     KalenderJahr jahr = new KalenderJahr(2012);
     Assert.AreEqual(jahr.GibMonate().Count, HilfsKonstrukte.MONATE_IM_JAHR);
     Assert.AreEqual(jahr.IstSchaltjahr(), true);
     Assert.AreEqual(jahr.GibTage().Count, HilfsKonstrukte.TAGE_IM_JAHR + 1);
 }
Beispiel #33
0
 public TageszeilenAusgabe(ref KalenderJahr dasJahr, int eingabemodus, bool mitEintraegen)
     : base(ref dasJahr, eingabemodus)
 {
     _mitEintraegen = mitEintraegen;
 }
Beispiel #34
0
 public void Schaltjahre()
 {
     KalenderJahr jahr = new KalenderJahr(2012);
     Assert.AreEqual(jahr.IstSchaltjahr(), true);
     jahr = new KalenderJahr(2011);
     Assert.AreEqual(jahr.IstSchaltjahr(), false);
     jahr = new KalenderJahr(1900);
     Assert.AreEqual(jahr.IstSchaltjahr(), false);
     jahr = new KalenderJahr(1984);
     Assert.AreEqual(jahr.IstSchaltjahr(), true);
     jahr = new KalenderJahr(2000);
     Assert.AreEqual(jahr.IstSchaltjahr(), true);
     jahr = new KalenderJahr(2100);
     Assert.AreEqual(jahr.IstSchaltjahr(), false);
 }
Beispiel #35
0
 public void Geburtstag()
 {
     List<Eintrag> meineEintraege = Eintrag.LeseEintraegeAusDatei("testfixtures/testeintraege.xml");
     KalenderJahr jahr2012 = new KalenderJahr(2012);
     jahr2012.TrageEin(ref meineEintraege);
     //Angabe des Jahrs ist nicht nötig
     Assert.AreEqual(jahr2012.GibMonate()[11].GibTage()[30].EintraegeAlsString(), "Geburtstag Aisha");
     //korrekte Anzeige des Alters
     Assert.AreEqual(jahr2012.GibMonate()[3].GibTage()[29].EintraegeAlsString(), "Geburtstag Barbara (" + (2012 - 1918) + ")");
 }
Beispiel #36
0
 public void Tag()
 {
     KalenderJahr jahr = new KalenderJahr(2012);
     Assert.AreEqual(jahr.GibMonate()[0].GibTage().Count, 31);
     Assert.AreEqual(jahr.GibMonate()[0].GibTage()[0].GibIndex(), 1);
     Assert.AreEqual(jahr.GibMonate()[0].GibTage()[30].GibIndex(), 31);
 }
Beispiel #37
0
 public override void TrageEinIn(KalenderJahr dasJahr)
 {
     List<Tag> tageImMonat = dasJahr.GibMonate()[_monat-1].GibTage();
     int index = 0;
     Tag ersterTag = tageImMonat[index];
     while (ersterTag.GibWochentag() != _wochentag) {
         index++;
         ersterTag = tageImMonat[index];
     }
     index = index + (_n-1) * HilfsKonstrukte.TAGE_PRO_WOCHE;
     if (index >= tageImMonat.Count) {
         return;
     }
     Tag nterTag = tageImMonat[index];
     nterTag.TrageEin(this, GibEintragText(dasJahr));
 }
Beispiel #38
0
 public MonatsBlockAusgabe2Spaltig(ref KalenderJahr dasJahr, int eingabemodus)
     : base(ref dasJahr, eingabemodus)
 {
 }
Beispiel #39
0
 public void Monat()
 {
     KalenderJahr jahr = new KalenderJahr(2012);
     Assert.AreEqual(jahr.GibMonate()[0].GibTage().Count, 31);
     Assert.AreEqual(jahr.GibMonate()[1].GibTage().Count, 29);
     Assert.AreEqual(jahr.GibMonate()[2].GibTage().Count, 31);
     Assert.AreEqual(jahr.GibMonate()[3].GibTage().Count, 30);
     Assert.AreEqual(jahr.GibMonate()[0].GibIndex(), 0);
     Assert.AreEqual(jahr.GibMonate()[HilfsKonstrukte.MONATE_IM_JAHR - 1].GibIndex(), HilfsKonstrukte.MONATE_IM_JAHR - 1);
     Tag fakeTag = new Tag(32,0,32);
     jahr.GibMonate()[0].FuegeTagAn(ref fakeTag);
     Assert.AreEqual(jahr.GibMonate()[0].GibTage().Count, 32);
 }
Beispiel #40
0
 public LatexTageszeilenAusgabe(ref KalenderJahr dasJahr)
     : base(ref dasJahr, 5) //XXX: modus sollte nicht nötig sein
 {
 }
Beispiel #41
0
 public void StartWochentage()
 {
     KalenderJahr jahr = new KalenderJahr(2012);
     Assert.AreEqual(jahr.StartWochenTag(), 6);
     jahr = new KalenderJahr(1583);
     Assert.AreEqual(jahr.StartWochenTag(), 5);
     jahr = new KalenderJahr(1899);
     Assert.AreEqual(jahr.StartWochenTag(), 6);
     jahr = new KalenderJahr(1900);
     Assert.AreEqual(jahr.StartWochenTag(), 0);
     jahr = new KalenderJahr(1981);
     Assert.AreEqual(jahr.StartWochenTag(), 3);
 }
Beispiel #42
0
 //XXX: modus sollte nicht nötig sein
 public LatexTageszeilenAusgabe(ref KalenderJahr dasJahr)
     : base(ref dasJahr, 5)
 {
 }
Beispiel #43
0
 public override string GibEintragText(KalenderJahr dasJahr)
 {
     string start = "Geburtstag ";
     if (_geburtsjahr != 0)
     {
         return start + GibTitel() + " (" + (dasJahr.Jahreszahl() - _geburtsjahr) + ")";
     }
     return start + GibTitel();
 }
Beispiel #44
0
 public TageszeilenAusgabe(ref KalenderJahr dasJahr, int eingabemodus, bool mitEintraegen)
     : base(ref dasJahr, eingabemodus)
 {
     _mitEintraegen = mitEintraegen;
 }
Beispiel #45
0
 public htmlTageszeilenAusgabe(ref KalenderJahr dasJahr)
     : base(ref dasJahr, 6)
 {
 }
Beispiel #46
0
 public override void TrageEinIn(KalenderJahr dasJahr)
 {
     int korrigierterTag = HilfsKonstrukte.Korrigiere29zu28inNichtSchaltjahrFebruar(dasJahr.Jahreszahl(), _monat, _tag);
     dasJahr.GibMonate()[_monat-1].GibTage()[korrigierterTag-1].TrageEin(this, GibEintragText(dasJahr));
 }