# Geburtstag



## stalker86 (3. Jul 2009)

Hallo zusammen,

ich hab mal n paar Fragen zu einer Aufgabe die ich bekommen habe.
Meine Aufgabe ist es, ein Programm zu schreiben, welches nach der Eingabe eines Geburtsdatums der Form (TT:MM:JJJJ) in der Kommandozeile folgendes ausgibt:

1.) Heute ist (beispielhaft) Freitag, 3. Juli 2009
2.) Ihr Geburtstag war am (beispielhaft) Freitag, 7 Februar 1986
3.) Ihr 10000. Lebenstag ist oder war am (beispielhaft) Sonntag, 4. August 2011

So, nun zu meinen Fragen.

Den ersten Punkt bekomm ich wunderbar hin, beim zweiten kann ich das Geburtsdatum in die Kommandozeile eingeben. Doch wie bekomm ich es hin, dass ich mir das Geburtsdatum, welches ich oben eingebe als Ausgabe mit dem entsprechenden Tag angeben lassen kann??? Ich weiß, dass ich das Eingegebene irgendwie als Datum formatieren muss, bekomms aber ums verrecken nicht hin. 

Und wie kann man dann vom eingegebenen Datum aus 10000 Tage dazuzählen?

Ich poste noch meinen bisherigen Code


```
currentPost.edit();

import java.util.*;
import java.lang.*;
import java.text.*;

public class Aufgabe3 {
	
	public static void main(String[] args){
		
		int Tag = Integer.valueOf(args[0]);
		int Monat = Integer.valueOf(args[1]);
		int Jahr = Integer.valueOf(args[2]);
		

		DateFormat df = DateFormat.getDateInstance(DateFormat.FULL);
		GregorianCalendar Heute = new GregorianCalendar();
		System.out.println("Heutiges Datum: "+df.format(Heute.getTime()));
		
		SimpleDateFormat eingabeformat = new SimpleDateFormat("dd MM yyyy", Locale.GERMAN);
		GregorianCalendar Geburtstag = new GregorianCalendar();
}
```

Danke schon mal für eure Antworten


----------



## madboy (3. Jul 2009)

Eine Eingabe als Datum parsen:

```
SimpleDateFormat eingabeformat = new SimpleDateFormat("dd MM yyyy", Locale.GERMAN);
Date inputDate = eingabeformat.parse(); //Parameter für parse() fehlt
```

Zu GregorianCalendar "Heute" etwas dazuzählen:

```
GregorianCalendar Heute = new GregorianCalendar();
Heute.add(); //Für add() müssen noch zwei Parameter hin
```

Ausgeben im Format "Freitag, 3. Juli 2009":

```
DateFormat df = DateFormat.getDateInstance(DateFormat.FULL);
System.out.println(df.format(inputDate));
```

Wie du in den Kommentaren sehen kannst, fehlen teilweise noch Parameter. Die sollten sich aber recht einfach finden lassen. Entweder in einem Javabuch (z.B. Galileo Computing :: Java ist auch eine Insel (8. Auflage) ) oder in der API ( Java 2 Platform SE 5.0 ), die sowieso sehr hilfreich ist. Dort werden sämtliche Java-Methoden und Klassen beschrieben.

Wenn du noch Fragen hast, immer her damit aber eine Komplettlösung gibt's von mir nicht


----------



## stalker86 (4. Jul 2009)

Ich versteh noch nicht ganz was du mit "Parsen" und den Parametern genau meinst.
Und mir ist noch nicht ganz ersichtlich wo genau das Datum aus der Kommandozeile übergeben wird.


----------



## madboy (4. Jul 2009)

mit "parsen" meine ich die Umwandlung von einem Datenformat in ein anders. Meistens von String nach irgendwas. In deinem Fall von einem String nach einem Date.

Das lässt sich auf verschiedene Arten machen, aber die Methode parse() von SimpleDateFormat bietet sich hier an weil sie einfach zu benutzen ist 

Ich dachte, das Datum als String einzulesen hättest du schon irgendwie gelöst...
So oder ähnlich lässt sich etwas von der Kommandozeile lesen:

```
import java.util.Scanner;
...
Scanner  LineInput=new Scanner(System.in);
System.out.println("Bitte Geburtsdatum in der Form tt:mm:yyyy eingeben: ");
String geburtsdatum=LineInput.nextLine();
System.out.println("Eingegeben: " + geburtsdatum");
...
```


----------

