Novice Java developer here. I've never really used a time/date library before and I'm curious how an experienced developer would solve this. You're given 4 ints: startHour, startMinute, endHour and endMinute. Now, check if current time is within the given timeframe. Is there a more clean way of doing this than what I've done here:
private void checkTimeframe(int startHour, int startMinute, int endHour, int endMinute) {
LocalDateTime now = LocalDateTime.now();
LocalTime localTimeStart = new LocalTime(startHour, startMinute);
LocalTime localTimeEnd = new LocalTime(endHour, endMinute);
LocalDateTime startTime = new LocalDateTime(now.getYear(), now.getMonthOfYear(),
now.getDayOfMonth(), startHour, startMinute);
LocalDateTime endTime = new LocalDateTime(now.getYear(), now.getMonthOfYear(),
now.getDayOfMonth(), endHour, endMinute);
//Check if start/end is, for instance, 23:00 - 03:00
if (localTimeStart.isAfter(localTimeEnd) || localTimeStart.equals(localTimeEnd)) {
endTime = endTime.plusDays(1);
}
if ( (now.equals(startTime) || now.isAfter(startTime) ) && now.isBefore(endTime)) {
System.out.println("Ok, we're within start/end");
} else {
System.out.println("Outside start/end");
}
}