X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Foutput%2FDateSelector.java;h=43654b7a9451c2aaf021d9aaee9bc7dc21711fb4;hb=d3652a2da8005abfc4ae82ba255ff92f96fc007f;hp=c8cc0f10e1db0f2fe792cc1a1f042a3f44164937;hpb=9ece5b79f093ac7c91381772ffe595f8f784e477;p=gigi.git diff --git a/src/org/cacert/gigi/output/DateSelector.java b/src/org/cacert/gigi/output/DateSelector.java index c8cc0f10..43654b7a 100644 --- a/src/org/cacert/gigi/output/DateSelector.java +++ b/src/org/cacert/gigi/output/DateSelector.java @@ -4,98 +4,118 @@ 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; import javax.servlet.http.HttpServletRequest; -import org.cacert.gigi.Language; +import org.cacert.gigi.localisation.Language; public class DateSelector implements Outputable { - String[] names; - public DateSelector(String day, String month, String year) { - this.names = new String[]{day, month, year}; - } - int day; - int month; - int year; - @Override - public void output(PrintWriter out, Language l, Map vars) { - out.print(""); - SimpleDateFormat sdf = new SimpleDateFormat("MMMM", l.getLocale()); - out.print(""); - out.print(""); - } - - public void update(HttpServletRequest r) { - String dayS = r.getParameter(names[0]); - if (dayS != null) { - day = parseIntSafe(dayS); - } - - String monthS = r.getParameter(names[1]); - if (monthS != null) { - month = parseIntSafe(monthS); - } - - String yearS = r.getParameter(names[2]); - if (yearS != null) { - year = parseIntSafe(yearS); - } - } - private int parseIntSafe(String dayS) { - try { - return Integer.parseInt(dayS); - } catch (NumberFormatException e) { - - } - return 0; - } - public boolean isValid() { - if (!(1900 < year && 1 <= month && month <= 12 && 1 <= day && day <= 32)) { - return false; - } - return true; // TODO checkdate - } - - @Override - public String toString() { - 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()); - } + + private String[] names; + + public DateSelector(String day, String month, String year, Date date) { + this(day, month, year); + Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTF")); + cal.setTime(date); + this.day = cal.get(Calendar.DAY_OF_MONTH); + this.month = cal.get(Calendar.MONTH); + this.year = cal.get(Calendar.YEAR); + } + + public DateSelector(String day, String month, String year) { + this.names = new String[] { + day, month, year + }; + } + + private int day; + + private int month; + + private int year; + + @Override + public void output(PrintWriter out, Language l, Map vars) { + out.print(""); + SimpleDateFormat sdf = new SimpleDateFormat("MMMM", l.getLocale()); + out.print(""); + out.print(""); + } + + public void update(HttpServletRequest r) { + String dayS = r.getParameter(names[0]); + if (dayS != null) { + day = parseIntSafe(dayS); + } + + String monthS = r.getParameter(names[1]); + if (monthS != null) { + month = parseIntSafe(monthS); + } + + String yearS = r.getParameter(names[2]); + if (yearS != null) { + year = parseIntSafe(yearS); + } + } + + private int parseIntSafe(String dayS) { + try { + return Integer.parseInt(dayS); + } catch (NumberFormatException e) { + + } + return 0; + } + + public boolean isValid() { + if ( !(1900 < year && 1 <= month && month <= 12 && 1 <= day && day <= 32)) { + return false; + } + return true; // TODO checkdate + } + + @Override + public String toString() { + 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()); + } }