@Override public LocalDateInterval asInterval() { LocalDate firstDayOfYear = dayOfFirstEpiWeek(this.year); LocalDate firstDayOfWeek = firstDayOfYear.plusDays((this.weekInYear - 1) * 7); LocalDate lastDayOfWeek = firstDayOfWeek.plusDays(6); return new LocalDateInterval(firstDayOfWeek, lastDayOfWeek); }
private void assertFirstDayOfEpicWeekInYear(int year, int expectedYear, int expectedMonth, int expectedDayOfMonth) { assertThat("Year " + year, EpiWeek.dayOfFirstEpiWeek(year), equalTo(new LocalDate(expectedYear, expectedMonth, expectedDayOfMonth))); } }
public static EpiWeek weekOf(LocalDate date) { LocalDate firstDayOfYear = dayOfFirstEpiWeek(date.getYear()); if(date.before(firstDayOfYear)) { return new EpiWeek(date.getYear() - 1, 52); } else { int daysBetween = LocalDate.daysBetween(firstDayOfYear, date); int weekNumber = daysBetween / 7; return new EpiWeek(date.getYear(), weekNumber + 1); } }