]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/output/DateSelector.java
upd: moved the lower year range to 1890 so the age check of the DoB with
[gigi.git] / src / org / cacert / gigi / output / DateSelector.java
index 22a0f620854eafb45a2f1826f62b4a8a572f1d2e..a17532695b3bf074971d835212b9de6f9c4d84ce 100644 (file)
@@ -4,7 +4,6 @@ import java.io.PrintWriter;
 import java.text.SimpleDateFormat;
 import java.util.Arrays;
 import java.util.Calendar;
-import java.util.GregorianCalendar;
 import java.util.Map;
 import java.util.TimeZone;
 
@@ -13,6 +12,7 @@ import javax.servlet.http.HttpServletRequest;
 import org.cacert.gigi.GigiApiException;
 import org.cacert.gigi.localisation.Language;
 import org.cacert.gigi.output.template.Outputable;
+import org.cacert.gigi.util.CalendarUtil;
 import org.cacert.gigi.util.DayDate;
 import org.cacert.gigi.util.HTMLEncoder;
 
@@ -22,7 +22,7 @@ public class DateSelector implements Outputable {
 
     public DateSelector(String day, String month, String year, DayDate date) {
         this(day, month, year);
-        Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTF"));
+        Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
         cal.setTimeInMillis(date.getTime());
         this.day = cal.get(Calendar.DAY_OF_MONTH);
         this.month = cal.get(Calendar.MONTH) + 1;
@@ -115,10 +115,15 @@ public class DateSelector implements Outputable {
     }
 
     public boolean isValid() {
-        if ( !(1900 < year && 1 <= month && month <= 12 && 1 <= day && day <= 32)) {
+        if ( !(1890 < year && 1 <= month && month <= 12 && 1 <= day && day <= 32)) {
             return false;
         }
-        return true; // TODO checkdate
+
+        if ( !CalendarUtil.isDateValid(year, month, day)) {
+            return false;
+        }
+
+        return true;
     }
 
     @Override
@@ -127,10 +132,7 @@ public class DateSelector implements Outputable {
     }
 
     public DayDate getDate() {
-        Calendar gc = GregorianCalendar.getInstance();
-        gc.set(year, month - 1, day, 0, 0, 0);
-        gc.set(Calendar.MILLISECOND, 0);
-        return new DayDate(gc.getTime().getTime());
+        return CalendarUtil.getDateFromComponents(year, month, day);
     }
 
     public static SimpleDateFormat getDateFormat() {