Files
perfdb/pdb-utils/src/main/java/org/lucares/utils/BeginningOfNextInterval.java

54 lines
1.3 KiB
Java

package org.lucares.utils;
import java.time.temporal.ChronoUnit;
import java.time.temporal.Temporal;
import java.time.temporal.TemporalAdjuster;
public class BeginningOfNextInterval implements TemporalAdjuster {
private final ChronoUnit unit;
public BeginningOfNextInterval(final ChronoUnit unit) {
this.unit = unit;
}
@Override
public Temporal adjustInto(final Temporal temporal) {
Temporal result = temporal;
final StartOfInterval startOfInterval = new StartOfInterval(unit);
result = result.with(startOfInterval);
switch (unit) {
case MINUTES: {
result = result.plus(1, ChronoUnit.MINUTES);
break;
}
case HOURS: {
result = result.plus(1, ChronoUnit.HOURS);
break;
}
case DAYS: {
result = result.plus(1, ChronoUnit.DAYS);
break;
}
case WEEKS: {
result = result.plus(1, ChronoUnit.WEEKS);
break;
}
case MONTHS: {
result = result.plus(1, ChronoUnit.MONTHS);
break;
}
case YEARS: {
result = result.plus(1, ChronoUnit.YEARS);
break;
}
default:
throw new IllegalArgumentException("Unexpected value: " + unit);
}
return result;
}
}