]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/output/DateSelector.java
add: add boolean to separate groups for user and support
[gigi.git] / src / org / cacert / gigi / output / DateSelector.java
index aadac045a6aabf8eff08630bad75f61c8804348c..2557282abe8dad4b8737b9ff6fd6baa0e972d6d4 100644 (file)
@@ -4,8 +4,6 @@ import java.io.PrintWriter;
 import java.text.SimpleDateFormat;
 import java.util.Arrays;
 import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
 import java.util.Map;
 import java.util.TimeZone;
 
@@ -14,23 +12,26 @@ 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;
 
 public class DateSelector implements Outputable {
 
     private String[] names;
 
-    public DateSelector(String day, String month, String year, Date date) {
+    public DateSelector(String day, String month, String year, DayDate date) {
         this(day, month, year);
-        Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTF"));
-        cal.setTime(date);
+        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);
+        this.month = cal.get(Calendar.MONTH) + 1;
         this.year = cal.get(Calendar.YEAR);
     }
 
     public DateSelector(String day, String month, String year) {
         this.names = new String[] {
-                day, month, year
+                HTMLEncoder.encodeHTML(day), HTMLEncoder.encodeHTML(month), HTMLEncoder.encodeHTML(year)
         };
     }
 
@@ -89,7 +90,7 @@ public class DateSelector implements Outputable {
         if (year != 0) {
             out.print(year);
         }
-        out.print("\" size=\"4\" autocomplete=\"off\">");
+        out.println("\" size=\"4\" autocomplete=\"off\">");
     }
 
     public void update(HttpServletRequest r) throws GigiApiException {
@@ -114,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
@@ -125,10 +131,8 @@ public class DateSelector implements Outputable {
         return "DateSelector [names=" + Arrays.toString(names) + ", day=" + day + ", month=" + month + ", year=" + year + "]";
     }
 
-    public java.sql.Date getDate() {
-        Calendar gc = GregorianCalendar.getInstance();
-        gc.set(year, month - 1, day);
-        return new java.sql.Date(gc.getTime().getTime());
+    public DayDate getDate() {
+        return CalendarUtil.getDateFromComponents(year, month, day);
     }
 
     public static SimpleDateFormat getDateFormat() {