import java.util.Date; import java.util.HashMap; import java.util.Map; /** * Klasse prüft Daten * @author Diemel Fabian - Integris-Solutions * @param Parameter sind so gewählt, damit in der Regel eine Zeile zum aufrufen genügt. **/ public abstract class DatumCheck { /** * prüft, ob ein Datum vor einem anderen liegt * @param Anfangstag - Endtag und jeweils Stunde und Minute * **/ public static boolean isBefore(Object anfangDatum, Object endeDatum,Object aStd,Object aMin,Object eStd,Object eMin) { Integer aS = new Integer(aStd.toString()); Integer aM = new Integer(aMin.toString()); Integer eS = new Integer(eStd.toString()); Integer eM = new Integer(eMin.toString()); // Übergabedaten in ein DateTime "parsen" Date a = parseDate(anfangDatum.toString(),aS,aM); Date b = parseDate(endeDatum.toString(),eS,eM); if(a.before(b)) return true; else return false; } public static Date parseDate(String a,int std, int min) { // "Assotiative Arrays, weil der String folgendes Format hat -> Tue Mar 06 00:00:00 CET 2012 " // Somit wird z.B. aus der Monatsangebe Mar - > 3 und aus der Tagesangabe Tue - > 2 Map tage = new HashMap(); tage.put("Mon", 1); tage.put("Tue", 2); tage.put("Wed", 3); tage.put("Thu", 4); tage.put("Fri", 5); tage.put("Sat", 6); tage.put("Sun", 7); Map monate = new HashMap(); monate.put("Jan", 1); monate.put("Feb", 2); monate.put("Mar", 3); monate.put("Apr", 4); monate.put("May", 5); monate.put("Jun", 6); monate.put("Jul", 7); monate.put("Aug", 8); monate.put("Sep", 9); monate.put("Oct", 10); monate.put("Nov" ,11); monate.put("Dec", 12); //String in Einzelteile zerlegen String[] split = a.split(" "); // neus Date mit herausgelesenen Werten return new Date(Integer.parseInt(split[(split.length - 1)]), monate.get(split[1]), tage.get(split[0]), std, min); } }