public override void gibAus() { oeffneStream(); //Textdatei erzeigen // html(_modus); //HTML Datei anlegen int monat, tag; int wochentagDesErstenImMonat = 0; //Mo = 0, ... gibZeileAus("Kalender fuer das Jahr " + _jahr.Jahreszahl()); gibZeileAus(); string wochentage = String.Join(" ", HilfsKonstrukte.wochenTagNamenKurz); wochentagDesErstenImMonat = _jahr.StartWochenTag(); for (monat = 0; monat < 12; monat++) //Schleife für die Erstellung der Monate: 0=Jan bis 11=Dez { gibZeileAus(" " + HilfsKonstrukte.monatsNamen[monat]); gibZeileAus(wochentage); if (monat > 0) { wochentagDesErstenImMonat += HilfsKonstrukte.TageImMonat(monat, _jahr.Jahreszahl()) % 7; wochentagDesErstenImMonat %= 7; } //Die Woche beginnt immer Montags, nur der 1. eines Monats //kann auf verschiedene Wochentage fallen. int ausgabePosition = wochentagDesErstenImMonat; string zeile = "".PadLeft(ausgabePosition * 3); for (tag = 1; tag <= HilfsKonstrukte.TageImMonat(monat + 1, _jahr.Jahreszahl()); tag++) //solange Zähler kleiner gleich Wert aus Array Tage { zeile += tag.ToString().PadRight(3); ausgabePosition++; //wenn hinterste Position erreicht Zeihlenumbruch einfügen und Bildschirm-Positionszähler zurücksetzen if (ausgabePosition > 6) { gibZeileAus(zeile); ausgabePosition = 0; zeile = ""; } } if (zeile.Length > 0) //wenn mehr als 0 Zeichen vorhanden sind ganze Zeile ausgeben { gibZeileAus(zeile); } //freie Zeilen zwischen den Monaten auf dem Bildschirm gibZeileAus(); } //ende for Schleife Monat schliesseStream(); }
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 override void gibAus() { oeffneStream(); int monat, tag; int wochentagDesErstenImMonat = 0; //Mo = 0, ... gibZeileAus("Kalender fuer das Jahr " + _jahr.Jahreszahl()); gibZeileAus(); string wochentage = String.Join(" ", HilfsKonstrukte.wochenTagNamenKurz); wochentagDesErstenImMonat = _jahr.StartWochenTag(); for (monat = 0; monat < 12; monat++) //Schleife für die Erstellung der Monate: 0=Jan bis 11=Dez { preparedStrings[monat] = new List <string>(); preparedStrings[monat].Add(" " + HilfsKonstrukte.monatsNamen[monat]); preparedStrings[monat].Add(wochentage); if (monat > 0) { wochentagDesErstenImMonat += HilfsKonstrukte.TageImMonat(monat, _jahr.Jahreszahl()) % 7; wochentagDesErstenImMonat %= 7; } //Die Woche beginnt immer Montags, nur der 1. eines Monats //kann auf verschiedene Wochentage fallen. int ausgabePosition = wochentagDesErstenImMonat; string zeile = "".PadLeft(ausgabePosition * 3); for (tag = 1; tag <= HilfsKonstrukte.TageImMonat(monat + 1, _jahr.Jahreszahl()); tag++) //solange Zähler kleiner gleich Wert aus Array Tage { zeile += tag.ToString().PadRight(3); ausgabePosition++; //wenn hinterste Position erreicht Zeihlenumbruch einfügen und Bildschirm-Positionszähler zurücksetzen if (ausgabePosition > 6) { preparedStrings[monat].Add(zeile); ausgabePosition = 0; zeile = ""; } } if (zeile.Length > 0) //wenn mehr als 0 Zeichen vorhanden sind ganze Zeile ausgeben { preparedStrings[monat].Add(zeile); } //freie Zeilen zwischen den Monaten auf dem Bildschirm while (preparedStrings[monat].Count < 9) { preparedStrings[monat].Add(""); } } //ende for Schleife Monat for (monat = 0; monat < 6; monat++) { for (int i = 0, l = preparedStrings[monat].Count; i < l; ++i) { gibZeileAus(preparedStrings[monat][i].PadRight(SPALTEN_BREITE) + preparedStrings[monat + 6][i]); } } schliesseStream(); }