import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Calendar;
-import java.util.GregorianCalendar;
import java.util.Map;
import java.util.TimeZone;
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 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;
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 {
}
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
}
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() {