Groovy java.time (LocalDate and LocalDateTime) compatible TimeCategory
|
1 min read
The following class upgrades the groovy wonderful TimeCategory to support the modern java8 java.time.LocalDate and java.time.LocalDateTime
class TimeCategory extends groovy.time.TimeCategory {
public static LocalDate plus(final LocalDate date, final BaseDuration d) { return date.plusYears(d.years)
.plusMonths(d.months)
.plusDays(d.days);
}
public static LocalDate minus(final LocalDate date, final BaseDuration d) {
return date.minusYears(d.years)
.minusMonths(d.months)
.minusDays(d.days);
}
public static LocalDateTime plus(final LocalDateTime dateTime, final BaseDuration d) {
return dateTime.plusYears(d.years)
.plusMonths(d.months)
.plusDays(d.days)
.plusHours(d.hours)
.plusMinutes(d.minutes)
.plusSeconds(d.seconds);
}
public static LocalDateTime minus(final LocalDateTime dateTime, final BaseDuration d) {
return dateTime.plusYears(d.years)
.minusMonths(d.months)
.minusDays(d.days)
.minusHours(d.hours)
.minusMinutes(d.minutes)
.minusSeconds(d.seconds);
}
}