A
andiS
Gast
Hallo,
möchte in meiner Webanwendung (Struts) Felder mit Startdatum+Endatum und Startzeit+Endzeit validieren. Natürlich darf der Endzeitpunkt nicht vor dem Startzeitpunkt liegen. Folgendes habe ich probiert:
Leider funktioniert der Check nur mit dem Datumsfeldern. Kann jemand einen Fehler erkennen? Wäre für jede Hilfe dankbar, eventuell kennt jemand auch Links zu Datum + Zeitvergleich.
Danke+Gruß
Andi
möchte in meiner Webanwendung (Struts) Felder mit Startdatum+Endatum und Startzeit+Endzeit validieren. Natürlich darf der Endzeitpunkt nicht vor dem Startzeitpunkt liegen. Folgendes habe ich probiert:
Code:
//dateformat to check the date
private static SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
//test if string is null or empty
protected boolean nullOrBlank (String str) {
return ((str == null) || (str.length() < 1));
}
// compare date
protected int compareDate(Date dateDep, Date dateArr) {
int result = dateDep.compareTo(dateArr);
return result;
}
//compare time
protected int compareTime() {
int arr; //Ende
int dep; //Start
dep = Integer.parseInt(deptime+":00");
arr = Integer.parseInt(arrtime+":00");
if (dep >= arr) {
return 1;
}
return 0;
}
public ActionErrors validate(
ActionMapping mapping, HttpServletRequest request ) {
ActionErrors errors = new ActionErrors();
.....
//Hier der eigentliche Check: ++++++++++++++++++++++++++++
//test date of lower arrdate / lower arrtime
try {
if(!nullOrBlank(depdate) && !nullOrBlank(arrdate) && (df.parse(depdate)!=null)
&& (df.parse(arrdate)!=null) && !nullOrBlank(deptime) && !nullOrBlank(arrtime)
&& Time.valueOf(deptime+":00")!=null && Time.valueOf(arrtime+":00")!=null)
{
int result = compareDate(df.parse(depdate), df.parse(arrdate));
if(result > 0)
{
errors.add("lowerDate",new ActionMessage("error.arrdate.lower"));
}
if(result == 0)
{
result = compareTime();
if(result == 1) {
errors.add("lowerTime",new ActionMessage("error.arrtime.lower"));
}
}
}
} catch (Exception e){
e.printStackTrace();
//errors.add("err",new ActionMessage("error.parse.date.time"));
}
Leider funktioniert der Check nur mit dem Datumsfeldern. Kann jemand einen Fehler erkennen? Wäre für jede Hilfe dankbar, eventuell kennt jemand auch Links zu Datum + Zeitvergleich.
Danke+Gruß
Andi