public static ZonedDateTime getNextSchedule() { ZonedDateTime next_schedule; // Determine type of schedule if (ConfigHandler.backupInterval > 0) // Interval { next_schedule = ZonedDateTime.ofInstant( Instant.ofEpochMilli( System.currentTimeMillis() + (ConfigHandler.backupInterval * 60 * 1000)), ZoneId.systemDefault()); } else // Schedule { if (ConfigHandler.backupSchedule.length == 0) { return null; } LocalTime now = LocalTime.now(); LocalTime next_time = null; LocalDate day = LocalDate.now(); TreeSet<LocalTime> times = new TreeSet<>(); for (String s : ConfigHandler.backupSchedule) { times.add(LocalTime.parse(s, DateTimeFormatter.ofPattern("H:mm"))); } for (LocalTime t : times) // try to find next scheduled time for today { if (t.compareTo(now) == 1) { next_time = t; break; } } if (next_time == null) // if we couldn't find one for today take the first schedule time for tomorrow { day = day.plusDays(1); next_time = times.first(); } next_schedule = ZonedDateTime.of(day, next_time, ZoneId.systemDefault()); } return next_schedule; }
// ----------------------------------------------------------------------- @SuppressWarnings("deprecation") public void testCompareTo() { LocalTime test1 = new LocalTime(10, 20, 30, 40); LocalTime test1a = new LocalTime(10, 20, 30, 40); assertEquals(0, test1.compareTo(test1a)); assertEquals(0, test1a.compareTo(test1)); assertEquals(0, test1.compareTo(test1)); assertEquals(0, test1a.compareTo(test1a)); LocalTime test2 = new LocalTime(10, 20, 35, 40); assertEquals(-1, test1.compareTo(test2)); assertEquals(+1, test2.compareTo(test1)); LocalTime test3 = new LocalTime(10, 20, 35, 40, GregorianChronology.getInstanceUTC()); assertEquals(-1, test1.compareTo(test3)); assertEquals(+1, test3.compareTo(test1)); assertEquals(0, test3.compareTo(test2)); DateTimeFieldType[] types = new DateTimeFieldType[] { DateTimeFieldType.hourOfDay(), DateTimeFieldType.minuteOfHour(), DateTimeFieldType.secondOfMinute(), DateTimeFieldType.millisOfSecond(), }; int[] values = new int[] {10, 20, 30, 40}; Partial p = new Partial(types, values); assertEquals(0, test1.compareTo(p)); assertEquals(0, test1.compareTo(new TimeOfDay(10, 20, 30, 40))); try { test1.compareTo(null); fail(); } catch (NullPointerException ex) { } // try { // test1.compareTo(new Date()); // fail(); // } catch (ClassCastException ex) {} }