StatsWindow.java
package edu.ucsb.cs156.dining.util;
import java.time.LocalDateTime;
/** Time windows for filtering review statistics by {@code dateItemServed}. */
public enum StatsWindow {
ALL,
SIX_MONTHS,
ONE_MONTH,
ONE_WEEK;
/**
* @param now reference time (typically {@code LocalDateTime.now()})
* @return earliest {@code dateItemServed} to include for this window
*/
public LocalDateTime since(LocalDateTime now) {
return switch (this) {
case ALL -> LocalDateTime.of(1970, 1, 1, 0, 0);
case SIX_MONTHS -> now.minusMonths(6);
case ONE_MONTH -> now.minusMonths(1);
case ONE_WEEK -> now.minusWeeks(1);
};
}
}