X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Foutput%2FDateSelector.java;h=2557282abe8dad4b8737b9ff6fd6baa0e972d6d4;hb=3e6fc72fae3a11ad28b602f8ee6b02b91f15ed5e;hp=ad1bdf33e3b543da3b64a56fb28ad09627446571;hpb=b207e1989b166619e924946731e40ccf98457fae;p=gigi.git diff --git a/src/org/cacert/gigi/output/DateSelector.java b/src/org/cacert/gigi/output/DateSelector.java index ad1bdf33..2557282a 100644 --- a/src/org/cacert/gigi/output/DateSelector.java +++ b/src/org/cacert/gigi/output/DateSelector.java @@ -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,16 +12,18 @@ 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) + 1; this.year = cal.get(Calendar.YEAR); @@ -90,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 { @@ -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 @@ -126,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() {