Hallo Allerseits, ich habe ein kleines, oder für mich grösseres Problem mit dem Java Kalender Calendar.
für eine Funktin die über mehrere Jahre zu bestimmten Zeiten ausgeführt werden soll brauche ich den Kalender. In einem einfachen Versuchsprogramm (CODE1) initialisiere ich den Kalender und zähle dann immer eine gewisse Zeit in Millisekunden dazu. Das funktioniert einwandfrei.
Im zweiten Versuchsprogramm, das nahezu identisch ist funktioniert es nicht mehr. Der Unterschied in den beiden Programmen ist dass das zweite bei jedem Durchgang den Kalender neu initialisiert. Nach der Initialisierung rechnet er allerdings nur noch die Zeit weiter und gibt immer das selbe Datum heraus.
Irgendwie macht das für mich überhaupt keinen Sinn und ich kriege schon langsam graue Haare deswegen.
Wenn mir also irgend jemand sagen kann wo mein Überlegungsfehler liegt wäre ich äusserst dankbar.
CODE1 (der funktioniert einwandfrei)
CODE2 (der funktioniert nicht)
für eine Funktin die über mehrere Jahre zu bestimmten Zeiten ausgeführt werden soll brauche ich den Kalender. In einem einfachen Versuchsprogramm (CODE1) initialisiere ich den Kalender und zähle dann immer eine gewisse Zeit in Millisekunden dazu. Das funktioniert einwandfrei.
Im zweiten Versuchsprogramm, das nahezu identisch ist funktioniert es nicht mehr. Der Unterschied in den beiden Programmen ist dass das zweite bei jedem Durchgang den Kalender neu initialisiert. Nach der Initialisierung rechnet er allerdings nur noch die Zeit weiter und gibt immer das selbe Datum heraus.
Irgendwie macht das für mich überhaupt keinen Sinn und ich kriege schon langsam graue Haare deswegen.
Wenn mir also irgend jemand sagen kann wo mein Überlegungsfehler liegt wäre ich äusserst dankbar.
CODE1 (der funktioniert einwandfrei)
Java:
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
Calendar Kalaender;
DateFormat Datenformat = new SimpleDateFormat("yyyyMMddhhmmssSSS");
Date AfangsDatum = null;
long Kalaender_millisekunde;
void setup(){
try {
AfangsDatum = Datenformat.parse("20090808070000000");
}
catch (Exception e) {
}
Kalaender = Calendar.getInstance();
Kalaender_millisekunde = AfangsDatum.getTime();
Kalaender.setTimeInMillis(Kalaender_millisekunde);
}
void mousePressed(){
Kalaender_millisekunde = Kalaender.getTimeInMillis();
Kalaender.setTimeInMillis(Kalaender_millisekunde+3600000);
String hol =Datenformat.format(Kalaender.getTime());
system.out.println(hol);
}
CODE2 (der funktioniert nicht)
Java:
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
Calendar Kalaender;
DateFormat Datenformat = new SimpleDateFormat("yyyyMMddhhmmssSSS");
Date AfangsDatum = null;
long Kalaender_millisekunde;
String hol;
void setup(){
try {
AfangsDatum = Datenformat.parse("20090808070000000");
}
catch (Exception e) {
}
Kalaender = Calendar.getInstance();
Kalaender_millisekunde = AfangsDatum.getTime();
Kalaender.setTimeInMillis(Kalaender_millisekunde);
hol =Datenformat.format(Kalaender.getTime());
}
void mousePressed(){
AfangsDatum = null;
try {
AfangsDatum = Datenformat.parse(hol);
}
catch (Exception e) {
println("Fehler "+e);
}
Kalaender_millisekunde = AfangsDatum.getTime();
Kalaender.setTimeInMillis(Kalaender_millisekunde);
Kalaender_millisekunde = Kalaender.getTimeInMillis();
//println("1 "+Datenformat.format(Kalaender.getTime()));
Kalaender.setTimeInMillis(Kalaender_millisekunde+3600000); //eine Stunde
system.out.println("2 "+Datenformat.format(Kalaender.getTime()));
hol =Datenformat.format(Kalaender.getTime());
}