Datumsberechnung
Sasch
- java
Mahlzeit,
ich möchte gern automatisch vom aktuellen Datum eine bestimmte (variable) Anzahl Tage abziehen.
Ich versuche das wie folgt:
java.util.Date today = new java.util.Date();
int days = Integer.parseInt(Parameter.getPar("glSysMessDay"));
out.println(today-days);
Dabei erhalte ich aber immer folgende Fehlermeldung:
operator - cannot be applied to java.util.Date,int
out.println(today-days);
^
Ich kann also offensichtlich keine Integerwerte von nem Datumswert abziehen.
Wenn ich allerding die Variable _days_ durch ne feste Zahl, bspw. 10, ersetze funktioniert das ganze wunderbar.
Kann mir jemand verraten, wie wie ich das ganze trotzdem variabel halten kann und den Parameterwert aus der _glSysMessDay_ in die Berechnung reinkriege?
Danke für Eure Hilfe!!!
Gruß Sasch
Hallo,
ich möchte gern automatisch vom aktuellen Datum eine bestimmte (variable) Anzahl Tage abziehen.
Ich kann also offensichtlich keine Integerwerte von nem Datumswert abziehen.
Richtig.
Wenn ich allerding die Variable _days_ durch ne feste Zahl, bspw. 10, ersetze funktioniert das ganze wunderbar.
Also in meinem Java nicht.
Kann mir jemand verraten, wie wie ich das ganze trotzdem variabel halten kann und den Parameterwert aus der _glSysMessDay_ in die Berechnung reinkriege?
Guck dir mal die Klasse java.util.Calendar an. Die Klasse ist allerdings
abstrakt. Eine nicht-abstrakte Subklasse ist java.util.GregorianCalendar.
Sieh dir hier am besten die Methoden "getInstance()" und "add()" an.
"getInstnace" liefert eine Instanz von Calendar mit der aktuellen
Zeit und dem aktuellen Datum. Mit "add" kann man eine spezifizierbare
Anzahl von Zeiteinheiten zum Calendar-Objekt hinzufügen oder abziehen.
Näheres findest du in der API-Dokumentation. Bei konkreten Fragen
einfach Fragen. (Allerdings habe ich mit Calendar selbst noch nichts
gemacht.)
Gruß
Slyh
Guten Morgen Sasch
das kann auch nicht funktionieren. Aber das hier müßte deinen Ansprüchen genügen. In dem Calendar-Objekt, welches zurück geliefert wird, steht dein gewünschtes Datum. Das kannst du jetzt weiterverarbeiten.
java.util.Calendar ist hier dein Freund.
Grüße Hansjörg
public Calendar getDay() {
.
.
.
int days = Integer.parseInt(Parameter.getPar("glSysMessDay"));
Calendar calendar = Calendar.getInstance();
calendar.roll(Calendar.DAY_OF_YEAR , - days);
//zur Testausgabe:
String year = ""+calendar.get(Calendar.YEAR);
String month = ""+(calendar.get(Calendar.MONTH)+1);
String day = ""+calendar.get(Calendar.DAY_OF_MONTH);
if (calendar.get(Calendar.MONTH)<10)
month = "0"+month;
if (calendar.get(Calendar.DAY_OF_MONTH)<10)
day = "0"+day;
System.out.println( month+"/"+day+"/"+year);
return calendar;
}