Suche jemanden der sich mal eine Klasse von mir anschaut, und allgemein den Aufbau und Struktur überprüft.
Und vielleicht den Ein oder Anderen Verbesserungsvorschlag macht.
Wäre euch super dankbar!
Und vielleicht den Ein oder Anderen Verbesserungsvorschlag macht.
Wäre euch super dankbar!
Code:
package util;
import Streams.DateiIO;
import java.util.ArrayList;
public class Kalender {
private int jahr;
private int monat;
private int tag;
ArrayList<String> aFeiertag = new ArrayList<String>();
private String[] aMonat = {"Januar", "Februar", "Maerz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"};
private String[] aTag = {"So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"};
//Default Konstruktor
public Kalender() {
this.jahr = 0;
this.monat = 0;
this.tag = 0;
} //end of default konstruktor
//======================setter===================================
public void setJahr(int jahr) {
this.jahr = jahr;
}
public void setMonat(int monat) {
this.monat = monat;
}
public void setTag(int tag) {
this.tag = tag;
}
//===================getter=======================================
public int getJahr() {
return jahr;
}
public int getMonat() {
return monat;
}
public int getTag() {
return tag;
}
//================================================================
public void printMonatOhne() {
System.out.println("Monat: ");
setMonat(MeineEingabe.erfasseInt());
System.out.println("Jahr: ");
setJahr(MeineEingabe.erfasseInt());
String dateiname = "" +getJahr()+ "_" +getMonat()+".txt";
String zeichenkette = schreibeMonatsblattOhne();
//Ausgabe des Kalenders auf dem Bildschrim
DateiIO.dateiSchreibenZeichenweise(zeichenkette);
//Ausgabe des Kalenders in Datei
this.frageBenutzer(dateiname, zeichenkette);
}
public void printMonatMit() {
System.out.println("Monat: ");
setMonat(MeineEingabe.erfasseInt());
System.out.println("Jahr: ");
setJahr(MeineEingabe.erfasseInt());
String dateiname = "" +getJahr()+ "_" +getMonat()+".txt";
String zeichenkette = schreibeMonatsblattMit();
//Ausgabe des Kalenders auf dem Bildschrim
DateiIO.dateiSchreibenZeichenweise(zeichenkette);
//Ausgabe des Kalenders in Datei
this.frageBenutzer(dateiname, zeichenkette);
}
public void printJahrOhne() {
System.out.println("Jahr: ");
setJahr(MeineEingabe.erfasseInt());
String dateiname = "" +getJahr()+ ".txt";
String zeichenkette = "";
for (int i = 1; i <= 12; i++) {
setMonat(i);
zeichenkette += schreibeMonatsblattOhne();
}
//Ausgabe des Kalenders auf dem Bildschrim
DateiIO.dateiSchreibenZeichenweise(zeichenkette);
//Ausgabe des Kalenders in Datei
this.frageBenutzer(dateiname, zeichenkette);
}
public void printJahrMit() {
System.out.println("Jahr: ");
setJahr(MeineEingabe.erfasseInt());
String dateiname = "" +getJahr()+ ".txt";
String zeichenkette = "";
for (int i = 1; i <= 12; i++) {
setMonat(i);
zeichenkette += schreibeMonatsblattMit();
} // end of for 12 Monate
//Ausgabe des Kalenders auf dem Bildschrim
DateiIO.dateiSchreibenZeichenweise(zeichenkette);
//Ausgabe des Kalenders in Datei
this.frageBenutzer(dateiname, zeichenkette);
} //end of method printJahrMit
public String schreibeMonatsblattOhne() {
String write = null;
KalenderFunktionen kal = new KalenderFunktionen();
int anzahl = kal.tage_im_monat(monat, jahr);
setTag(1);
int tagesnummer = kal.tagesnummer(tag, monat, jahr);
int wert = kal.wochentag_im_jahr(jahr, tagesnummer);
write = ("\r\n\r\n------------------------------------------------------\r\n");
write += ("------------------" + aMonat[monat - 1] + " " + jahr + "-----------------------\r\n");
//Formatierung + Ausgabe der Tage
for (int i = 0; i < aTag.length; i++) {
write += (" ");
write += (aTag[i] + "\t");
}
write += ("\r\n");
//Um den Wochentag für den 1. zu finden
int zaehler = 0;
for (int i = 0; i < wert; i++) {
write += ("\t");
zaehler++;
}
//Ausgabe der einzelnen tage 1,2,3...
for (int i = 1; i <= anzahl; i++) {
if (i > 9) {
write += " " +i;
} else {
write += " " + i;
}
write += ("\t");
zaehler++;
//zuständig für den Zeilenumbruch
if (zaehler == 7) {
write += ("\r\n");
zaehler = 0;
}
}
return write;
}//end of schreibeMonatsblattOhne
public String schreibeMonatsblattMit() {
String write = null;
aFeiertag.clear(); //löschen, für den nächsten Monat
KalenderFunktionen kal = new KalenderFunktionen();
int anzahl = kal.tage_im_monat(monat, jahr);
setTag(1);
int tagesnummer = kal.tagesnummer(tag, monat, jahr);
int wert = kal.wochentag_im_jahr(jahr, tagesnummer);
write = ("\r\n\r\n------------------------------------------------------\r\n");
write += ("------------------" + aMonat[monat - 1] + " " + jahr + "-----------------------\r\n");
//Formatierung + Ausgabe der Tage
for (int i = 0; i < aTag.length; i++) {
write += (" ");
write += (aTag[i]+ "\t");
}
//Um den Wochentag für den 1. zu finden
write += ("\r\n");
int zaehler = 0;
for (int i = 0; i < wert; i++) {
write += ("\t");
zaehler++;
}
int tagNr = 0;
//Ausgabe der einzelnen tage 1,2,3... ohne Sternchen und
//mit Sternchen
for (int i = 1; i <= anzahl; i++) {
String feiertag = null;
tagNr = kal.tagesnummer(i, monat, jahr);
feiertag = kal.istFeiertag(jahr, tagNr);
if ((feiertag == null) && (i > 9)) {
write += (" " +i);
} else if ((feiertag == null) && (i <= 9)) {
write += " " + i;
}
//Mit Sternchen
if ((feiertag != null) && (i > 9)) {
write += ("*" + i + "*");
aFeiertag.add(i + ". " + feiertag);
} else if ((feiertag != null) && (i <= 9)) {
write += (" *" + i + "*");
aFeiertag.add(i + ". " + feiertag);
}
write += ("\t");
zaehler++;
//zuständig für den Zeilenumbruch
if (zaehler == 7) {
write += ("\r\n");
zaehler = 0;
}
}
//Schleife für die Ausgabe der ArrayList mit den Feiertagen
write += ("\r\n\r\n");
for (int i = 0; i < aFeiertag.size(); i++) {
write += (aFeiertag.get(i) + "\r\n");
}
return write;
}
public void frageBenutzer(String dateiname, String zeichenkette) {
System.out.println("Moechten Sie das Ergebnis in eine txt-Datei speichern (j/n)?");
String antwort = MeineEingabe.erfasseText();
if (antwort.equals("j"))
DateiIO.schreibeZeichenweiseInDatei(dateiname, zeichenkette);
}
} //end of class