# Datum ausgeben



## Tombery (22. Nov 2009)

Hi, 

ich arbeite gerade an einem sogenannten "DateFormatter". doch irgendwie komme ich nicht richtig voran. ich glaube das wichtigste habe ich schon, aber ich weiß nicht ob das so stimmt...z.B. erkennt er mir die beiden Boolean-Methoden nicht an.... 

als eingabe soll man ein datum eingeben, also z.B. l 4 3 2009. 

Ausgabe wäre dann: 4. März 2009. 

l ist das format (charactertyp): 

l(long) = dd. Monatsname yyyy 
s(short) = dd.mm.yyyy 
e(english) = mm/dd/yyyy 

mein bisheriges Programm: 


```
public class DateFormatter {
	
//Enumtyp für die Monate
	
	enum Monat {Januar, Februar, März, April, Mai, Juni, Juli, August, September, Oktober, November, Dezember}
	
	int tag;
	int monat;
	int jahr;
	
	//die zwei Datenelemente
	
	private final int anzahlTage;
	private final int nummerMonat;
	
	//Getter-Methoden für die Datenelemente
	
	final int getAnzahlTage(){
		
		return anzahlTage;
	}
	
	final int getNummerMonat(){
		
		return nummerMonat;
	}
	
	//Format als Charakter
	char format;
	
	boolean datumsformat(char format){
		if(format == 'l' || format == 's' || format == 'e'){
			return true;
		}else{
			return false;
		}
	}
	
	//Methode für fehlerhafte Eingabe
	boolean fehler(int tag, int monat, int jahr){
		
	  if(jahr > 0){
			//damdam
	    }
		else if(monat > 0 && monat <= 12){
			//damdam
		}
		else if(tag <= anzahlTage){
			//damdam
		}
		else if(format == 'l' || format == 's' || format == 'e'){
			//damdam
			return true;
		}
	    else{
			return false;
		}
	}
	
	//Custom-Konstruktor für die Initialisierung der Datenelemente
	DateFormatter(int anzahlTage, int nummerMonat){
		
		Monat m;
		
		if(fehler == true){
			
		if(this.monat == 1){
			
			//Initalisieren der Monatsnummer
			nummerMonat = 1;
			//Zuordnen des Monats
			m = Monat.Januar;
			//Tage im Monat
			anzahlTage = 31;
			
			if(tag <= anzahlTage){
				
				//Ausgabe möglich
				output();
			}		
		}
		if(this.monat == 2){
			
			nummerMonat = 2;
			m = Monat.Februar;
			//Tage im Monat
			anzahlTage = 28;
			
			if(tag <= anzahlTage){
				
				output();
			}
		}
		if(this.monat == 3){
			
			nummerMonat = 3;
			m = Monat.März;
			//Tage im Monat
			anzahlTage = 31;
			
			if(tag <= anzahlTage){
				
				output();
			}
		}
		if(this.monat == 4){
			
			nummerMonat = 4;
			m = Monat.April;
			//Tage im Monat
			anzahlTage = 30;
			
			if(tag <= anzahlTage){
				
				output();
			}
		}
		if(this.monat == 5){
			
			nummerMonat = 5;
			m = Monat.Mai;
			//Tage im Monat
			anzahlTage = 31;
			
			if(tag <= anzahlTage){
				
				output();
			}
		}
		if(this.monat == 6){
			
			nummerMonat = 6;
			m = Monat.Juni;
			//Tage im Monat
			anzahlTage = 30;
			
			if(tag <= anzahlTage){
				
				output();
			}
		}
		if(this.monat == 7){
			
			nummerMonat = 7;
			m = Monat.Juli;
			//Tage im Monat
			anzahlTage = 31;
			
			if(tag <= anzahlTage){
				
				output();
			}
		}
		if(this.monat == 8){
			
			nummerMonat = 8;
			m = Monat.August;
			//Tage im Monat
			anzahlTage = 31;
			
			if(tag <= anzahlTage){
				
				output();
			}
		}
		if(this.monat == 9){
			
			nummerMonat = 9;
			m = Monat.September;
			//Tage im Monat
			anzahlTage = 30;
			
			if(tag <= anzahlTage){
				
				output();
			}
		}
		if(this.monat == 10){
			
			nummerMonat = 10;
			m = Monat.Oktober;
			//Tage im Monat
			anzahlTage = 31;
			
			if(tag <= anzahlTage){
				
				output();
			}
		}
		if(this.monat == 11){
			
			nummerMonat = 11;
			m = Monat.November;
			//Tage im Monat
			anzahlTage = 30;
			
			if(tag <= anzahlTage){
				
				output();
			}
		}else{
			
			nummerMonat = 12;
			m = Monat.Dezember;
			//Tage im Monat
			anzahlTage = 31;
			
			if(tag <= anzahlTage){
				
				output();
			}
	    }
		}else{
			
			System.out.println("Falsche Eingabe");
		}
	}
	
	//Methode für Ausgabe
	void output(){
		
		if(datumsformat == true){
			
			if(format == 'l'){
				
				//long-Ausgabe: dd.Monatsname yyyy
				
				System.out.printf("%d. %char %d", tag, m, jahr); //%char => Ausgabe Charaktertyp??
			}
			if(format == 's'){
				
				//short-Ausgabe: dd.mm.yyyy
				
				System.out.printf("%d.%d.%d", tag, monat, jahr); //zweistellige Zahlen??
			}
			else{
				
				//format == 'e'
				//englische Ausgabe: mm/dd/yyyy
				
				System.out.printf("%d/%d/%d", monat, tag, jahr); 
			}
			
		}else{
			
			//keine Ausgabe
			
		}
			
	}
	
	//Main-Methode
	public static void main (String[]args){
		
		//Einlesen der Datumsangaben von der Kommandozeile
		char format = args[0].charAt(0);
		int tag = Integer.parseInt(args[1]);
		int monat = Integer.parseInt(args[2]);
		int jahr = Integer.parseInt(args[3]);
		
		DateFormatter d = new DateFormatter(format, tag, monat, jahr);
		
		//Ausgabe des Datums
		d.output();
	}
}
```


----------



## eRaaaa (22. Nov 2009)

kurze zwischenfrage: was ist das ziel? machst du das als übung ? denn dateformat gibt es ja bereits

```
//irgendwie sowas hier:
		Date d = new Date(); 
        DateFormat df = DateFormat.getDateInstance(DateFormat.LONG);
        SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
        System.out.println(df.format(d));
        System.out.println(sdf.format(d));
```

aber wenn du es nur zu übungszwecken machst, hab ich nichts gesagt !


----------



## Tombery (22. Nov 2009)

nein das sollen wir als übung machen XDD *lach*

weißt du zufällig, was mit den boolean´s nicht stimmt?


----------



## eRaaaa (22. Nov 2009)

puh, also da sind ja so einige sachen. irgendwie totales durcheinander  richtig durchblicken tu ich da nicht !
also was man so sieht ist irgendwie:

main:

- DateFormatter d = new DateFormatter(format, tag, monat, jahr); 

diesen konstruktor gibt es bei dir nicht




- bei der methode fehler:
die sieht komisch aus. du willst doch sichelrich prüfen ob jahr>0, monat in dem bereich 0-12 usw. 
dann mach das doch einfach in einer abfrage

```
boolean fehler(int tag, int monat, int jahr) {

		if (jahr > 0 && (monat > 0 && monat <= 12) && tag <= anzahlTage
				&& (format == 'l' || format == 's' || format == 'e')) {
			return true;
		} else
			return false;
	}
```
 wobei ich da die rückgabewerte eher andersherum definiert hätte 

- konsturktor:
[c]if (fehler == true) {[/c]
da willst du doch sicherlich die methode aufrufen?
also
if (fehler(.....)) {  <-- wobei ich hier halt auch nicht durchblicke was du da übergbeen willst

das gleiche gilt auch bei deiner output methode
if (datumsformat == true) ???:L

wohl auch eher

if (datumsformat(....)) // wobei du hier dann auch ein char übergeben musst.


----------



## Tombery (22. Nov 2009)

ja ich blicke auch selber kaum mehr durch XDD
habe nur das gemacht was auf dem Blatt stand...

also:

- enumtyp Monat;
- zwei Datenelemente (private final int anzahlTage, private final int nummerMonat)
- tag, monat, jahr => int-werte
- format => character
- Custom-Konstruktor, der die zwei Datenlemente initialisiert
- Getter-Methoden für die zwei Datenelemente
- Fehlermeldung für falsche Eingabe
man soll für Prüfungen und Ausgaben pro Format eine eigene Methode verwenden...

zu den boolean´s:

also bei if(fehler == true), dachte ich eher daran, dass die methode dateformatter nur ausgeführt wird, wenn boolean "true" zurückgekommen ist, also boolean fehler  == true.....also nicht aufrufen, sondern als vorraussetzung der dateformatter-methode. 
genauso meine ich es auch unten bei datumsformat....

denn wenn die booleans false sind...braucht man ja die methoden erst garnicht auszuführen..(die bedingungen wären ja dafür dann nicht erfüllt)


----------



## eRaaaa (22. Nov 2009)

aber du hast doch nirgends einen boolean namens fehler ? ?!?!?

und das == true kann man eh weglassen


----------



## Tombery (22. Nov 2009)

öh? doch....hier:


```
//Methode für fehlerhafte Eingabe
	
	boolean fehler(int tag, int monat, int jahr) {
		 
        if (jahr > 0 && (monat > 0 && monat <= 12) && tag <= anzahlTage
                && (format == 'l' || format == 's' || format == 'e')) {
        	
            return true;
            
        } else{
        	
            return false;
          }
    }
```

und hier ist das 2. boolean:


```
boolean datumsformat(char format){
		if(format == 'l' || format == 's' || format == 'e'){
			return true;
		}else{
			return false;
		}
	}
```

wieso kann man das == true weglassen?


----------



## eRaaaa (22. Nov 2009)

ja das sagte ich doch oben bereits. du willst die methode fehler aufrufen(welche dir dann ein boolean zurück gibt!!).

das machst du aber nicht!! glaube du verwechselst hier was.


```
boolean fehler(int tag, int monat, int jahr) {
```
bedeuted nicht, dass das nen boolean ist  sondern dass die methode dir ein boolean liefert!

es muss if(fehler(....) == true) heißen, wobei du der methode halt noch paramter übergeben musst. und zwar genau die, die du da halt erwartest , tag, monat und jahr!

und das == true kann man weglassen, weil eine if abfrage einen boolschen ausdruck braucht, den haste ja aber mit einem boolean schon(true OR false) (doof erklärt: --> ist halt so ist ne bessere antwort )


----------



## Tombery (22. Nov 2009)

achso XDDD ich dachte bei boolean fehler....fehler wäre dann der boolean ^^""

so neuester stand:


```
public class DateFormatter {
	
//Enumtyp für die Monate
	
	enum Monat {Januar, Februar, März, April, Mai, Juni, Juli, August, September, Oktober, November, Dezember}
	
	int tag;
	int monat;
	int jahr;
	
	//die zwei Datenelemente
	
	private final int anzahlTage;
	private final int nummerMonat;
	
	//Getter-Methoden für die Datenelemente
	
	final int getAnzahlTage(){
		
		return anzahlTage;
	}
	
	final int getNummerMonat(){
		
		return nummerMonat;
	}
	
	//Format als Charakter
	char format;
	
	boolean datumsformat(char format){
		if(format == 'l' || format == 's' || format == 'e'){
			return true;
		}else{
			return false;
		}
	}
	
	//Methode für fehlerhafte Eingabe
	
	boolean fehler(int tag, int monat, int jahr) {
		 
        if (jahr > 0 && (monat > 0 && monat <= 12) && tag <= anzahlTage
                && (format == 'l' || format == 's' || format == 'e')) {
        	
            return true;
            
        } else{
        	
            return false;
          }
    }
	
	//Custom-Konstruktor für die Initialisierung der Datenelemente
	DateFormatter(int anzahlTage, int nummerMonat){
		
		Monat m;
		
		if(fehler(tag,monat,jahr) == true){
			
		if(this.monat == 1){
			
			//Initalisieren der Monatsnummer
			nummerMonat = 1;
			//Zuordnen des Monats
			m = Monat.Januar;
			//Tage im Monat
			anzahlTage = 31;
			
			if(tag <= anzahlTage){
				
				//Ausgabe möglich
				output();
			}		
		}
		if(this.monat == 2){
			
			nummerMonat = 2;
			m = Monat.Februar;
			//Tage im Monat
			anzahlTage = 28;
			
			if(tag <= anzahlTage){
				
				output();
			}
		}
		if(this.monat == 3){
			
			nummerMonat = 3;
			m = Monat.März;
			//Tage im Monat
			anzahlTage = 31;
			
			if(tag <= anzahlTage){
				
				output();
			}
		}
		if(this.monat == 4){
			
			nummerMonat = 4;
			m = Monat.April;
			//Tage im Monat
			anzahlTage = 30;
			
			if(tag <= anzahlTage){
				
				output();
			}
		}
		if(this.monat == 5){
			
			nummerMonat = 5;
			m = Monat.Mai;
			//Tage im Monat
			anzahlTage = 31;
			
			if(tag <= anzahlTage){
				
				output();
			}
		}
		if(this.monat == 6){
			
			nummerMonat = 6;
			m = Monat.Juni;
			//Tage im Monat
			anzahlTage = 30;
			
			if(tag <= anzahlTage){
				
				output();
			}
		}
		if(this.monat == 7){
			
			nummerMonat = 7;
			m = Monat.Juli;
			//Tage im Monat
			anzahlTage = 31;
			
			if(tag <= anzahlTage){
				
				output();
			}
		}
		if(this.monat == 8){
			
			nummerMonat = 8;
			m = Monat.August;
			//Tage im Monat
			anzahlTage = 31;
			
			if(tag <= anzahlTage){
				
				output();
			}
		}
		if(this.monat == 9){
			
			nummerMonat = 9;
			m = Monat.September;
			//Tage im Monat
			anzahlTage = 30;
			
			if(tag <= anzahlTage){
				
				output();
			}
		}
		if(this.monat == 10){
			
			nummerMonat = 10;
			m = Monat.Oktober;
			//Tage im Monat
			anzahlTage = 31;
			
			if(tag <= anzahlTage){
				
				output();
			}
		}
		if(this.monat == 11){
			
			nummerMonat = 11;
			m = Monat.November;
			//Tage im Monat
			anzahlTage = 30;
			
			if(tag <= anzahlTage){
				
				output();
			}
		}else{
			
			nummerMonat = 12;
			m = Monat.Dezember;
			//Tage im Monat
			anzahlTage = 31;
			
			if(tag <= anzahlTage){
				
				output();
			}
	    }
		}else{
			
			System.out.println("Falsche Eingabe");
		}
	}
	
	//Methode für Ausgabe
	void output(){
		
		if(datumsformat(format) == true){
			
			if(format == 'l'){
				
				//long-Ausgabe: dd.Monatsname yyyy
				
				System.out.printf("%d. %char %d", tag, m, jahr); //%char => Ausgabe Charaktertyp??
			}
			if(format == 's'){
				
				//short-Ausgabe: dd.mm.yyyy
				
				System.out.printf("%d.%d.%d", tag, monat, jahr); //zweistellige Zahlen??
			}
			else{
				
				//format == 'e'
				//englische Ausgabe: mm/dd/yyyy
				
				System.out.printf("%d/%d/%d", monat, tag, jahr); 
			}
			
		}else{
			
			//keine Ausgabe
			
		}
			
	}
	
	//Main-Methode
	public static void main (String[]args){
		
		//Einlesen der Datumsangaben von der Kommandozeile
		char format = args[0].charAt(0);
		int tag = Integer.parseInt(args[1]);
		int monat = Integer.parseInt(args[2]);
		int jahr = Integer.parseInt(args[3]);
		
		DateFormatter d = new DateFormatter(format, tag, monat, jahr);
		
		//Ausgabe des Datums
		d.output();
	}
}
```

der streicht mir das hier rot:


```
DateFormatter(int anzahlTage, int nummerMonat){
```

und ganz unten bei der Ausgabe...habe da auch kommentare hin...wie kann man da bei printf einen char ausgeben? also int ist ja %d....aber char?

und drunter noch...wie man das datum zweistellig ausgeben kann, also z.B. bei 2 auf 02.


----------



## eRaaaa (22. Nov 2009)

Visuell hat gesagt.:


> der streicht mir das hier rot:
> 
> 
> ```
> ...



das liegt viel mehr an

```
private final int anzahlTage;
	    private final int nummerMonat;
```
die hast du nicht initalisiert! (final ??? )
/edit: war quatsch: du willst die ja erst im konstruktor initialisieren! dann musst du aber deine ganzen if, eher durch if -else - else if - usw. ersetzen(monat kann ja eh immer nur entweder oder sein ;D. bietet sich vllt auch ein switch-case an) und viel wichtiger nummerMonat = 1; und anzahlTage = 31; eher zu this.nummerMonat = 1; und this.anzahlTage = 31; ändern.



> wie kann man da bei printf einen char ausgeben? also int ist ja %d....aber char?



mittels %c . das problem ist aber , dass er m garnicht kennt! woher auch ?



> und drunter noch...wie man das datum zweistellig ausgeben kann, also z.B. bei 2 auf 02.




```
System.out.printf("%02d" ,VARIABLE);
```


----------



## Tombery (22. Nov 2009)

hm...er streicht mir das immernoch rot an, obwohl ich das geändert habe....

und zu dem m:
...er sollte es eigentlich aus der methode DateFormatter kennen...immerhin habe ich dort ja die ganzen m´s initialisiert...für die ganzen monate....hm...

und wie mache ich das am besten mit der ausgabe in der main-methode? 
ist ja iwie kompliziert, das alles zu verbinden....also DateFormatter(int anzahlTage, int nummerMonat) will er nicht...wahrscheinlich weil man die ja auch nicht von der Kommandozeile eingibt...aber...er braucht ja ein neues Objekt mit den neuen Werten (Kommandozeile)...iwie...müssen die daten von der kommandozeile in die DateFormatter-Klasse gelangen...damit er dort damit arbeiten kann...


```
public class DateFormatter {
	
//Enumtyp für die Monate
	
	enum Monat {Januar, Februar, März, April, Mai, Juni, Juli, August, September, Oktober, November, Dezember}
	
	int tag;
	int monat;
	int jahr;
	
	//die zwei Datenelemente
	
	private final int anzahlTage;
	private final int nummerMonat;
	
	//Getter-Methoden für die Datenelemente
	
	final int getAnzahlTage(){
		
		return anzahlTage;
	}
	
	final int getNummerMonat(){
		
		return nummerMonat;
	}
	
	//Format als Charakter
	char format;
	
	boolean datumsformat(char format){
		if(format == 'l' || format == 's' || format == 'e'){
			
			return true;
			
		}else{
			
			return false;
		}
	}
	
	//Methode für fehlerhafte Eingabe
	
	boolean fehler(int tag, int monat, int jahr) {
		 
        if(jahr > 0 && (monat > 0 && monat <= 12) && tag <= anzahlTage
                && (format == 'l' || format == 's' || format == 'e')) {
        	
            return true;  
            
        }else{
        	
            return false;
            
          }
    }
	
	//Custom-Konstruktor für die Initialisierung der Datenelemente
	DateFormatter(int anzahlTage, int nummerMonat){
		
		Monat m;
		
		if(fehler(tag,monat,jahr) == true){
			
		if(this.monat == 1){
			
			//Initalisieren der Monatsnummer
			this.nummerMonat = 1;
			//Zuordnen des Monats
			m = Monat.Januar;
			//Tage im Monat
			this.anzahlTage = 31;
			
			if(tag <= anzahlTage){
				
				//Ausgabe möglich
				output();
			}		
		}
		else if(this.monat == 2){
			
			this.nummerMonat = 2;
			m = Monat.Februar;
			//Tage im Monat
			this.anzahlTage = 28;
			
			if(tag <= anzahlTage){
				
				output();
			}
		}
		else if(this.monat == 3){
			
			this.nummerMonat = 3;
			m = Monat.März;
			//Tage im Monat
			this.anzahlTage = 31;
			
			if(tag <= anzahlTage){
				
				output();
			}
		}
		else if(this.monat == 4){
			
			this.nummerMonat = 4;
			m = Monat.April;
			//Tage im Monat
			this.anzahlTage = 30;
			
			if(tag <= anzahlTage){
				
				output();
			}
		}
		else if(this.monat == 5){
			
			this.nummerMonat = 5;
			m = Monat.Mai;
			//Tage im Monat
			this.anzahlTage = 31;
			
			if(tag <= anzahlTage){
				
				output();
			}
		}
		else if(this.monat == 6){
			
			this.nummerMonat = 6;
			m = Monat.Juni;
			//Tage im Monat
			this.anzahlTage = 30;
			
			if(tag <= anzahlTage){
				
				output();
			}
		}
		else if(this.monat == 7){
			
			this.nummerMonat = 7;
			m = Monat.Juli;
			//Tage im Monat
			this.anzahlTage = 31;
			
			if(tag <= anzahlTage){
				
				output();
			}
		}
		else if(this.monat == 8){
			
			this.nummerMonat = 8;
			m = Monat.August;
			//Tage im Monat
			this.anzahlTage = 31;
			
			if(tag <= anzahlTage){
				
				output();
			}
		}
		else if(this.monat == 9){
			
			this.nummerMonat = 9;
			m = Monat.September;
			//Tage im Monat
			this.anzahlTage = 30;
			
			if(tag <= anzahlTage){
				
				output();
			}
		}
		else if(this.monat == 10){
			
			this.nummerMonat = 10;
			m = Monat.Oktober;
			//Tage im Monat
			this.anzahlTage = 31;
			
			if(tag <= anzahlTage){
				
				output();
			}
		}
		else if(this.monat == 11){
			
			this.nummerMonat = 11;
			m = Monat.November;
			//Tage im Monat
			this.anzahlTage = 30;
			
			if(tag <= anzahlTage){
				
				output();
			}
		}else{
			
			this.nummerMonat = 12;
			m = Monat.Dezember;
			//Tage im Monat
			this.anzahlTage = 31;
			
			if(tag <= anzahlTage){
				
				output();
			}
	    }
		}else{
			
			System.out.println("Falsche Eingabe");
		}
	}
	
	//Methode für Ausgabe
	void output(){
		
		if(datumsformat(format) == true){
			
			if(format == 'l'){
				
				//long-Ausgabe: dd.Monatsname yyyy
				
				System.out.printf("%d. %c %d", tag, m, jahr);
			}
			if(format == 's'){
				
				//short-Ausgabe: dd.mm.yyyy
				
				System.out.printf("%02d.%02d.%d", tag, monat, jahr);
			}
			else{
				
				//format == 'e'
				//englische Ausgabe: mm/dd/yyyy
				
				System.out.printf("%d/%d/%d", monat, tag, jahr); 
			}
			
		}else{
			
			//keine Ausgabe
			
		}
			
	}
	
	//Main-Methode
	public static void main (String[]args){
		
		//Einlesen der Datumsangaben von der Kommandozeile
		char format = args[0].charAt(0);
		int tag = Integer.parseInt(args[1]);
		int monat = Integer.parseInt(args[2]);
		int jahr = Integer.parseInt(args[3]);
		
		DateFormatter d = new DateFormatter();
		
		//Ausgabe des Datums
		d.output();
	}
}
```


----------



## eRaaaa (22. Nov 2009)

Visuell hat gesagt.:


> hm...er streicht mir das immernoch rot an, obwohl ich das geändert habe....


jepp, in deiner letzten else musst du die 2 auch noch initialisieren.


> und zu dem m:
> ...er sollte es eigentlich aus der methode DateFormatter kennen...immerhin habe ich dort ja die ganzen m´s initialisiert...für die ganzen monate....hm...


ja, m ist aber eine [c]lokale[/c] variable, die ist ausserhalb nicht sichtbar !



> und wie mache ich das am besten mit der ausgabe in der main-methode?
> ist ja iwie kompliziert, das alles zu verbinden....also DateFormatter(int anzahlTage, int nummerMonat) will er nicht...wahrscheinlich weil man die ja auch nicht von der Kommandozeile eingibt...aber...er braucht ja ein neues Objekt mit den neuen Werten (Kommandozeile)...iwie...müssen die daten von der kommandozeile in die DateFormatter-Klasse gelangen...damit er dort damit arbeiten kann...



ja, da muss ich jetzt passen, für mich ist das ehrlich gesagt alles zu kuddel-muddel (sorry ).schon allein der konstruktor ergibt imo keinen sinn. diese fallunterscheidung mit monat etc. 
monat wurde ja noch gar nirgends gesetzt (das übernimmt ja eig. der konstruktor)
vllt mag ja wer anders helfen !


----------



## Tombery (22. Nov 2009)

das ganz letzte...geht aber nicht...da das ja zur ganz ersten if-anweisung noch gehört....also wenn FEHLER drinnen sind solls ausgeben "Falsche Eingabe!". 


```
else if(this.monat == 12){
			
			this.nummerMonat = 12;
			m = Monat.Dezember;
			//Tage im Monat
			this.anzahlTage = 31;
			
			if(tag <= anzahlTage){
				
				output();
			}
		}
	    }else{
			
			System.out.println("Falsche Eingabe");
		}
```

und hier...wie geht das dann genau mit dem m? damit das m...erst von der methode initialisiert wird...denn wenn ich es dort mache, kann ja m einfach irgendein wert sein....muss aber mit dem monat angepasst sein.....


```
void output(){
		
		if(datumsformat(format) == true){
			
			Monat m;
			m = Monat.???;
			
			if(format == 'l'){
				
				//long-Ausgabe: dd.Monatsname yyyy
				
				System.out.printf("%d. %c %d", tag, m, jahr);
			}
			if(format == 's'){
				
				//short-Ausgabe: dd.mm.yyyy
				
				System.out.printf("%02d.%02d.%d", tag, monat, jahr);
			}
			else{
				
				//format == 'e'
				//englische Ausgabe: mm/dd/yyyy
				
				System.out.printf("%d/%d/%d", monat, tag, jahr); 
			}
			
		}else{
			
			//keine Ausgabe
			
		}
			
	}
```


----------

