public FortnightValue(int year, int weekNum) { this(new EpiWeek(year, weekNum)); }
public BiWeek(int startWeekInYear, int year) { this(new EpiWeek(year, startWeekInYear)); }
public EpiWeek plus(int count) { return new EpiWeek(year, weekInYear + count); }
@Override protected FieldInput parseInput(int year, int periodIndex) { return new FieldInput(new EpiWeek(year, periodIndex + 1)); } }
@Override protected FieldInput parseInput(int year, int periodIndex) { return new FieldInput(new EpiWeek(year, (periodIndex * 2) + 1)); }
/** * @param epiWeekAsString (e.g. 2015W1, 2016W30) * @return epi week */ public static EpiWeek parse(String epiWeekAsString) { //noinspection NonJREEmulationClassesInClientCode String[] tokens = epiWeekAsString.split("W"); if (tokens.length != 2) { throw new NumberFormatException(epiWeekAsString); } String year = tokens[0]; String weekInYear = tokens[1]; return new EpiWeek(Integer.parseInt(year), Integer.parseInt(weekInYear)); }
public EpiWeek getEndWeek() { return new EpiWeek(startWeek.next()); }
public WeeklyCursor() { Month month = Month.of(new Date()); currentWeek = new EpiWeek(month.getYear(), month.getMonth() * 4); }
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); } }
@Test public void testParse() { assertThat(parseSubFormKey("s34234234-2017-2017W3"), equalTo(new EpiWeek(2017, 3))); assertThat(parseSubFormKey("s34234234-2017-2017W34"), equalTo(new EpiWeek(2017, 34))); assertThat(parseSubFormKey("s0417565614-2018W1"), equalTo(new EpiWeek(2018, 1))); assertThat(parseSubFormKey("s0417565614-2017W49"), equalTo(new EpiWeek(2017, 49))); }
private static void assertWeekOfYear(int year, int month, int dayOfMonth, int expectedYear, int expectedWeek) { assertThat(EpiWeek.weekOf(new LocalDate(year, month, dayOfMonth)), equalTo(new EpiWeek(expectedYear, expectedWeek))); }
private static void assertDateRange(int year, int weekInYear, LocalDate startDate, LocalDate endDate) { assertEquals(new LocalDateInterval(startDate, endDate), new EpiWeek(year, weekInYear).asInterval()); }
@Test public void serialization() { EpiWeek epiWeek = new EpiWeek(2016, 3); EpiWeek deserialized = EpiWeek.parse(epiWeek.toString()); assertEquals(epiWeek, deserialized); }