@Override public LocalDateInterval asInterval() { LocalDate startDate = startWeek.asInterval().getStartDate(); LocalDate endDate = startDate.plusDays(13); return new LocalDateInterval(startDate, endDate); }
@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); }
@Override public PeriodValue containingDate(LocalDate localDate) { EpiWeek week = EpiWeek.weekOf(localDate); if(week.getWeekInYear() % 2 == 0) { return new FortnightValue(week.previous()); } else { return new FortnightValue(week); } }
@Override public LocalDateInterval asInterval() { return new LocalDateInterval( new LocalDate(year, month, 1), new LocalDate(year, month, LocalDate.getLastDayOfMonth(year, month))); } }
public static LocalDateInterval month(int year, int month) { LocalDate start = new LocalDate(year, month, 1); LocalDate end = LocalDate.getLastDateOfMonth(year, month); return new LocalDateInterval(start, end); } }
public static LocalDateInterval year(int year) { return new LocalDateInterval( new LocalDate(year, 1, 1), new LocalDate(year, 12, 31)); }
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); } }
@Override public PeriodValue containingDate(LocalDate localDate) { return new Month(localDate.getYear(), localDate.getMonthOfYear()); } }
public static int daysBetween(LocalDate x, LocalDate y) { assert !x.after(y); int days = -x.getDayOfYear(); int year = x.getYear(); while(year < y.getYear()) { if(YearValue.isLeapYear(year)) { days += 366; } else { days += 365; } year++; } return days + y.getDayOfYear(); }
@Override public Object toHrdProperty(LocalDate value) { // Use simple YYYY-MM-DD return value.toString(); }
@Override public PeriodValue next() { return new FortnightValue(startWeek.plus(+2)); }
public String toWeekString() { return toWeekString(startWeek.getWeekInYear()); }
@Override public FortnightValue parseJsonValue(JsonValue value) { EpiWeek startWeek = EpiWeekType.INSTANCE.parseJsonValue(value); return new FortnightValue(startWeek); }
/** * Returns a string representation of this Month in the format 2009-1 * * @return a string representation of this Month in the format 2009-1, * 2009-12 */ @Override public String toString() { return toString(year, month); }
public static int getLastDayOfMonth(int year, int month) { if(month == 2) { return YearValue.isLeapYear(year) ? 29 : 28; } else { return DAYS_IN_MONTH[month - 1]; } }
public EpiWeek setYear(int year) { this.year = year; checkState(true, false); return this; }
@Override public LocalDateInterval asInterval() { return new LocalDateInterval(new LocalDate(year, 1, 1), new LocalDate(year, 12, 31)); }
/** * Returns this data as an ISO-8601 string */ @Override public String toString() { return toString(year, monthOfYear, dayOfMonth); }
@Override public PeriodValue previous() { return new FortnightValue(startWeek.plus(-2)); }