# Datum eingeben



## Sinista (11. Jun 2009)

Ich habe eine Kundendatei.

diese kundendatei hat eine klasse Auftrag mit 

Erteilungsdatum;
Lieferdatum;
Rechnungsdatum;

diese sachen möchte ich mit irgendeinem beliebigen datum angeben.

Hab es wie folgt versucht.


```
Damit möchte ich den kunden erzeugen 
	Kunde ersterKunde = new Kunde("Auto", 19.9 ,(2009,8,12), (2009,12,12),(2006,12,12), "Benjamini", "Am Haus 12", "89800889000");

hab dafür den gregoranischen calendar benutzt
	GregorianCalendar Erteilungsdatum;
	GregorianCalendar Lieferdatum;
	GregorianCalendar Rechnungsdatum;
```

Jetzt sagt er mir aber an den komma stellen wo das datum ist das es einen syntax error gibt und er nen namen erwartet.

muss ich da noch was ändern damit das läuft


----------



## madboy (11. Jun 2009)

Sinista hat gesagt.:


> muss ich da noch was ändern damit das läuft


Wenn es nicht läuft: ja ;-)

Poste am mal die Klasse Kunde, dann wird sich eine Lösung finden. Wahrscheinlich mittels DateFormat o.ä.


----------



## kfisch (11. Jun 2009)

Versuche doch einfach mal die Kommas durch Punkte zu ersetzen:


```
Kunde ersterKunde = new Kunde("Auto", 19.9 ,(2009.8.12), ...
```

genaueres kann ich dir aber nur sagen, wenn ich die Klasse Kunde kennen würde.

oder da du GregorianCalendar nutzt mit:


```
GregorianCalendar erteilungsdatum = new GregorianCalendar(2009,8,12);
...

Kunde ersterKunde = new Kunde("Auto", 19.9 ,erteilungsdatum, ...
```


----------



## Sinista (11. Jun 2009)

```
package a11;

import java.util.GregorianCalendar;

public class Kunde extends Auftrag{
	
	
	String Name;
	String Anschrift;
	String Bankverbindung;

	public String getName() {
		return Name;
	}

	public void setName(String name) {
		Name = name;
	}

	public String getAnschrift() {
		return Anschrift;
	}

	public void setAnschrift(String anschrift) {
		Anschrift = anschrift;
	}

	public String getBankverbindung() {
		return Bankverbindung;
	}

	public void setBankverbindung(String bankverbindung) {
		Bankverbindung = bankverbindung;
	}

	public Kunde(String bezeichnung, double preis,
			GregorianCalendar erteilungsdatum, GregorianCalendar lieferdatum,
			GregorianCalendar rechnungsdatum, String name, String anschrift,
			String bankverbindung) {
		super(bezeichnung, preis, erteilungsdatum, lieferdatum, rechnungsdatum);
		Name = name;
		Anschrift = anschrift;
		Bankverbindung = bankverbindung;
	}

	
	
	
	
}
```


----------



## SlaterB (11. Jun 2009)

dass man sowas immer inmitten eine komplizierten Codezeile mit 20 anderen Parametern und noch Code einer anderen Klasse usw. testen muss,

versuche doch lieber ganz grundlegend erstmal
GregorianCalendar x = (2009.8.12);

das funktioniert nämlich genauso nicht,
Objekte erzeugt man mit Konstruktor und deren Parametern:

GregorianCalendar x = new GregorianCalendar(...);
siehe API für mögliche Konstruktoren


----------



## madboy (11. Jun 2009)

Ich würde keinen GregorianCalendar verwenden, um ein Datum zu speichern. Eher ein java.util.Date.
Dann könntest du so Daten übergeben:


```
SimpleDateFormat parser = new SimpleDateFormat("yyyy.MM.dd");
Date d1 = parser.parse("2009.09.19");
Date d2 = parser.parse("...");
...
Kunde ersterKunde = new Kunde("Auto", d1 ,d2, ..., "Benjamini", "Am Haus 12", "89800889000");
```


----------



## Sinista (11. Jun 2009)

madboy hat gesagt.:


> Ich würde keinen GregorianCalendar verwenden, um ein Datum zu speichern. Eher ein java.util.Date.
> Dann könntest du so Daten übergeben:
> 
> 
> ...




kann ich das Datum dann auch beim erstellen eines Kunden angeben und nicht schon vorher in der klasse, da ich ja mehrere Kunden erstellen möchte mit verschiedenen Daten


----------



## madboy (11. Jun 2009)

Du kannst das Datum auch über einen String im Konstruktor von Kunde angeben und dann dort parsen falls du das meinst.


```
public class Kunde ...
private SimpleDateFormat parser = ...

public Kunde(..., String datum1, ...)
{
   Date date1 = parser.parse(datum1);
   ...
}
```


----------



## Sinista (20. Jun 2009)

```
GregorianCalendar erteilungsdatum = new GregorianCalendar();
		int year = erteilungsdatum.get( Calendar.YEAR  );
		int month = erteilungsdatum.get( Calendar.MONTH ) + 1;           
		int date = erteilungsdatum.get( Calendar.DATE  );
		erteilungsdatum.set( 1956, Calendar.MARCH, 17 );
		System.out.println(date + "." + month + "." + year);
```

hab hier den code für ein datum

nun möchte ich aber 3 daten haben und die beim erzeugen eines datums eingeben

quasi so: Auftrag meier = new Auftrag (12.12.1999, 12.12.2000, 12.12.2001)

muss den Gregorian Calendar einen extra constructor bauen der dan für alle 3 gilt?


----------

