Datum ausgeben

Windows10

Bekanntes Mitglied
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
Code:
String month;
sondern es muss bei
Code:
int month;
bleiben!! Meine Frage: Wie muss ich folgenden Code ändern, dass er statt 1.2.2000, 1. Februar 2000 ausgibt?

Der Code:
Java:
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

Top Contributor
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.
 

Joose

Top Contributor
Mehr Infos kann ich da nicht mehr geben ohne dir direkt den Code zu schreiben ;)

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

Windows10

Bekanntes Mitglied
Mehr Infos kann ich da nicht mehr geben ohne dir direkt den Code zu schreiben ;)

Java:
public static String[] monthNames = { "Jänner", "Februar", ..... };
....
monthNames[month];
....
Jetzt gibt es den Tag und dann alle Monate ("Jänner, Februar",...) und dann noch das Jahr aus!!
Der Code:
Java:
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

Top Contributor
na warum wohl?
Du machst ja auch eine schleife:
Java:
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
 

Neue Themen


Oben