public KalenderJahr(int dasJahr) { _jahr = dasJahr; _monate = new List<Monat>(); _wochen = new List<Woche>(); _tage = new List<Tag>(); int tageImJahr = HilfsKonstrukte.TAGE_IM_JAHR; if (IstSchaltjahr()) { ++tageImJahr; } int wochenTag = StartWochenTag(); int wochenNummer = StartWochenNummer(); int monat = 0; int tagImMonat = 0; Woche woche = new Woche(wochenNummer); for (int i = 0; i < tageImJahr; ++i) { if (tagImMonat == 0) { _monate.Add(new Monat(monat)); } if (wochenTag == 0 && i != 0) { wochenNummer++; woche = new Woche(wochenNummer); _wochen.Add(woche); } Tag meinTag = new Tag(tagImMonat+1, wochenTag, i+1); meinTag.SetzeWoche(ref woche); _tage.Add(meinTag); _monate[monat].FuegeTagAn(ref meinTag); wochenTag = (++wochenTag) % HilfsKonstrukte.TAGE_PRO_WOCHE; tagImMonat++; if (tagImMonat == HilfsKonstrukte.TageImMonat(monat+1, _jahr)) { monat++; tagImMonat = 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); }
public void FuegeTagAn(ref Tag derTag) { _tage.Add(derTag); }