private static final Date toDate(String str, Date time) { if (str == null) return time; Calendar tc = Calendar.getInstance(); if (time == null) { tc.set(Calendar.HOUR_OF_DAY, 0); tc.set(Calendar.MINUTE, 0); tc.set(Calendar.SECOND, 0); tc.set(Calendar.MILLISECOND, 0); } else { tc.setTime(time); } str = str.toUpperCase().trim(); boolean success = false; for (int i = 0; i < DATE_FORMATS.length; i++) { try { Calendar c = Calendar.getInstance(); KSDateTimeFormatter df = DATE_FORMATS[i]; c.setTime(df.parse(str)); tc.set(Calendar.YEAR, c.get(Calendar.YEAR)); tc.set(Calendar.MONTH, c.get(Calendar.MONTH)); tc.set(Calendar.DATE, c.get(Calendar.DATE)); success = true; break; } catch (IllegalArgumentException e) { } } return success ? tc.getTime() : time; }
@Override public String getDaysAndTimes() { StringBuilder daysAndTimes = new StringBuilder(); if (monday) daysAndTimes.append(SchedulingServiceConstants.MONDAY_TIMESLOT_DISPLAY_DAY_CODE); if (tuesday) daysAndTimes.append(SchedulingServiceConstants.TUESDAY_TIMESLOT_DISPLAY_DAY_CODE); if (wednesday) daysAndTimes.append(SchedulingServiceConstants.WEDNESDAY_TIMESLOT_DISPLAY_DAY_CODE); if (thursday) daysAndTimes.append(SchedulingServiceConstants.THURSDAY_TIMESLOT_DISPLAY_DAY_CODE); if (friday) daysAndTimes.append(SchedulingServiceConstants.FRIDAY_TIMESLOT_DISPLAY_DAY_CODE); if (saturday) daysAndTimes.append(SchedulingServiceConstants.SATURDAY_TIMESLOT_DISPLAY_DAY_CODE); if (sunday) daysAndTimes.append(SchedulingServiceConstants.SUNDAY_TIMESLOT_DISPLAY_DAY_CODE); KSDateTimeFormatter df = DateFormatters.HOUR_NOZERO_MINUTE_AM_PM_TIME_FORMATTER; if (daysAndTimes.length() > 0) daysAndTimes.append(" "); daysAndTimes.append(df.format(startDate)); daysAndTimes.append(" to "); daysAndTimes.append(df.format(untilDate)); return daysAndTimes.toString(); }
// TODO: KSAP-743 convert these to property editors, add to standard registry private static final Date toTime(String str, Date date) { if (str == null) return date; Calendar dc = Calendar.getInstance(); if (date == null) { dc.set(Calendar.YEAR, 1970); dc.set(Calendar.MONTH, Calendar.JANUARY); dc.set(Calendar.DATE, 1); } else { dc.setTime(date); } dc.set(Calendar.HOUR_OF_DAY, 0); dc.set(Calendar.MINUTE, 0); dc.set(Calendar.SECOND, 0); dc.set(Calendar.MILLISECOND, 0); str = str.toUpperCase().trim(); if (str.endsWith("A") || str.endsWith("P")) str += "M"; boolean success = false; for (int i = 0; i < TIME_FORMATS.length; i++) { try { Calendar c = Calendar.getInstance(); KSDateTimeFormatter df = TIME_FORMATS[i]; c.setTime(df.parse(str)); if (i == TIME_FORMATS.length - 1) if (c.get(Calendar.HOUR_OF_DAY) < 8) c.set(Calendar.AM_PM, Calendar.PM); dc.set(Calendar.HOUR_OF_DAY, c.get(Calendar.HOUR_OF_DAY)); dc.set(Calendar.MINUTE, c.get(Calendar.MINUTE)); success = true; break; } catch (IllegalArgumentException e) { } } return success ? dc.getTime() : date; }