Mit Java-KalenderJava

Java-Forum
Anonymous
 Mit Java-Kalender

Post by Anonymous »

Ich habe eine einfache Aufgabe. Es gibt zwei Klassen: Ticket und Datum. Das Ticket enthält Veranstaltung, Veranstaltungsort und Veranstaltungsdatum, was ein Datumsobjekt ist. Ich muss auch eine move()-Methode für das Date-Objekt bereitstellen, also habe ich Calendar und add() von Calendar verwendet. Abgesehen von der Ausgabe sieht alles gut aus. Ich erhalte immer das gleiche Datum für alle Event-Objekte.
Der Code:

Ticketklasse:

Code: Select all

public class Ticket {

private String what;
private String where;
private Date when;

public Ticket(String s1, String s2, Data d){
this.what = s1;
this.where = s2;
this.when = d;
}

public Date giveDate(){
System.out.println("when in giveDate() "+this.when);
return this.when;
}

public String toString(){
return "what: "+this.what+"\n"+"where: "+this.where+"\n"+"when: "+this.when;
}

}
Datumsklasse:

Code: Select all

import java.util.Calendar;
import java.util.GregorianCalendar;

public class Date {

public int day;
public int month;
public int year;

public Date(int x, int y, int z){
this.day = x;
this.month = y;
this.year = z;
}

public Date move(int p){

Calendar gc = new GregorianCalendar(this.year, this.month, this.day);
gc.add(Calendar.DAY_OF_YEAR, p);

this.year = gc.get(Calendar.YEAR);
this.day = gc.get(Calendar.DAY_OF_MONTH);
this.month = gc.get(Calendar.MONTH);

return this;
}

@Override
public String toString(){
return this.day+","+this.month+","+this.year;
}

}
Haupt zum Testen:

Code: Select all

 Date date1=new Date(30,4,2002);
Ticket event1=new Ticket("Peter Gabriel's gig",
"London",date1
);
System.out.println(event1);

Ticket event2=new Ticket("Diana Kroll's concert",
"Glasgow",date1
);
System.out.println(event2);

Date date2=event2.giveDate();

date2.move(30);
Ticket event3=new Ticket("X's B-day",
"some place",date2
);
System.out.println(event3);

System.out.println(event1);
System.out.println(event2);
System.out.println(event3);
Und hier ist meine Ausgabe. Nach dem Erstellen von Ereignissen haben sie das richtige Datum, aber am Ende erhalten alle das gleiche Datum, keine Ahnung warum:/

Code: Select all

what: Peter Gabriel's gig
where: London
when: 30,4,2002
what: Diana Krall's concert
where: Glasgow
when: 6,12,2004
what: X's B-day
where: some place
when: 5,1,2005
what: Peter Gabriel's gig
where: London
when: 5,1,2005
what: Diana Krall's concert
where: Glasgow
when: 5,1,2005
what: X's B-day
where: some place
when: 5,1,2005

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post