// start date before end date static LocalDateTime[] parse(String startDateTimeString, String endDateTimeString) { LocalDateTime[] dates = new LocalDateTime[2]; String startDateString = null; String startTimeString = null; String endDateString = null; String endTimeString = null; Pattern pattern = Pattern.compile(DATE_TIME_PATTERN); Matcher matcher = pattern.matcher(startDateTimeString); matcher.find(); startDateString = matcher.group(1); startTimeString = matcher.group(2); matcher = pattern.matcher(endDateTimeString); matcher.find(); endDateString = matcher.group(1); endTimeString = matcher.group(2); if (startDateString == null) { startDateString = processNullStartDate(endDateString); } if (startDateString.equals("now")) { startTimeString = getCurrentTime(); } if (endDateString == null) { endDateString = startDateString; } if (startTimeString == null) { startTimeString = processNullStartTime(startDateString); } if (endTimeString == null) { endTimeString = processNullEndTime(startDateString, endDateString, startTimeString); } LocalDate startDate = DateParser.parse(startDateString); LocalTime startTime = TimeParser.parse(startTimeString); LocalDateTime startDateTime = startDate.atTime(startTime); LocalDate endDate = DateParser.parse(endDateString); LocalTime endTime = TimeParser.parse(endTimeString); LocalDateTime endDateTime = endDate.atTime(endTime); if (endDateTime.isBefore(startDateTime)) { endDateTime.plusDays(1); } dates[0] = startDateTime; dates[1] = endDateTime; return dates; }
static LocalDateTime parse(String endDateTimeString) { String endDateString = null; String endTimeString = null; Pattern pattern = Pattern.compile(DATE_TIME_PATTERN); Matcher matcher = pattern.matcher(endDateTimeString); matcher.find(); endDateString = matcher.group(1); endTimeString = matcher.group(2); if (endDateString == null) { endDateString = "today"; } if (endTimeString == null) { endTimeString = END_TIME_DEFAULT; } LocalDate endDate = DateParser.parse(endDateString); LocalTime endTime = TimeParser.parse(endTimeString); LocalDateTime endDateTime = endDate.atTime(endTime); if (endDateTime.isBefore(LocalDateTime.now())) { endDateTime = endDateTime.plusDays(1); } return endDateTime; }
private static String addOneHourTo(String startTimeString) { String endTimeString; LocalTime startTime = TimeParser.parse(startTimeString); startTime = startTime.plusHours(1); String hour = Integer.toString(startTime.getHour()); Integer minute = startTime.getMinute(); if (minute < 10) { endTimeString = new String(hour + "0" + minute); } else { endTimeString = new String(hour + minute); } return endTimeString; }