# Datum ausgeben



## Windows10 (23. Mrz 2016)

Bei folgendem Code ist ein kleiner Fehler drinnen!! Es sollte zum Beispiel: 1.Februar 2000, ausgeben und nicht 1.2.2000!!! Die Klassendekleration muss darf aber kein 
	
	
	
	





```
String month;
```
 sondern es muss bei 
	
	
	
	





```
int month;
```
 bleiben!! Meine Frage: Wie muss ich folgenden Code ändern, dass er statt 1.2.2000, 1. Februar 2000 ausgibt?

Der Code: 

```
public class Date
{
    int day;
    int month;
    int year;
    public Date(int d, int m, int y)
    {
        this.day=d;
        this.month=m;
        this.year=y;
    }

    public String formatDate()
    {
        String punkt =".";
        StringBuilder ausgabe=new StringBuilder();
        ausgabe.append(day);
        ausgabe.append(punkt);
        ausgabe.append(month);
        ausgabe.append(punkt);
        ausgabe.append(year);
        String formateDate=ausgabe.toString();
        return formateDate;
    }
}
```


----------



## Joose (23. Mrz 2016)

Darfst du mit der Java Date Klasse oder dem GregorianCalendar arbeiten? Dann bietet sich "SimpleDateFormat" an.

Ansonsten deklariere ein Array mit den 12 Monatsnamen und mit dem Wert der Variable "month" greifst du auf das richtige Monat zu.


----------



## kneitzel (23. Mrz 2016)

Erstell ein Date Objekt und nutz SimpleDateFormat für die Ausgabe.
http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html


----------



## Windows10 (23. Mrz 2016)

Joose hat gesagt.:


> Darfst du mit der Java Date Klasse oder dem GregorianCalendar arbeiten? Dann bietet sich "SimpleDateFormat" an.
> 
> Ansonsten deklariere ein Array mit den 12 Monatsnamen und mit dem Wert der Variable "month" greifst du auf das richtige Monat zu.


Kann ich ein bisschen mehr Infos zur zweiten Methode, mit den Arrays, wissen?


----------



## Joose (23. Mrz 2016)

Mehr Infos kann ich da nicht mehr geben ohne dir direkt den Code zu schreiben 


```
public static String[] monthNames = { "Jänner", "Februar", ..... };
....
monthNames[month];
....
```


----------



## Windows10 (23. Mrz 2016)

Joose hat gesagt.:


> Mehr Infos kann ich da nicht mehr geben ohne dir direkt den Code zu schreiben
> 
> 
> ```
> ...


Jetzt gibt es den Tag und dann alle Monate ("Jänner, Februar",...) und dann noch das Jahr aus!!
Der Code:

```
public String formatDate()
    {
        int i=0;
        String punkt =".";
        StringBuilder ausgabe=new StringBuilder();
        ausgabe.append(day);
        ausgabe.append(punkt);
        String[]monthNames={"Jänner","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"};
        for (month=i+1; month<monthNames.length;month++)
        {
            ausgabe.append(monthNames[month]);
        }
        ausgabe.append(punkt);
        ausgabe.append(year);
        String formateDate=ausgabe.toString();
        return formateDate;
    }
```


----------



## InfectedBytes (23. Mrz 2016)

na warum wohl?
Du machst ja auch eine schleife: 

```
for(month=i+1; month<monthNames.length;month++)
       {
            ausgabe.append(monthNames[month]);
       }
```
Stattdessen solltest du natürlich nur den monat ausgeben, welcher durch dein _int monat_ vorgegeben ist


----------

