class CalendarDate implements Comparable<CalendarDate> {

  @Deprecated
  public CalendarDate add(double value, CalendarPeriod.Field unit) {
    switch (unit) {
      case Millisec:
        return new CalendarDate(cal, dateTime.plus(Math.round(value)));
      case Second:
        return new CalendarDate(cal, dateTime.plus(Math.round(value * MILLISECS_IN_SECOND)));
      case Minute:
        return new CalendarDate(cal, dateTime.plus(Math.round(value * MILLISECS_IN_MINUTE)));
      case Hour:
        return new CalendarDate(cal, dateTime.plus(Math.round(value * MILLISECS_IN_HOUR)));
      case Day:
        return new CalendarDate(cal, dateTime.plus(Math.round(value * MILLISECS_IN_DAY)));
      case Month: // LOOK should we throw warning ?
        return new CalendarDate(cal, dateTime.plus(Math.round(value * MILLISECS_IN_MONTH)));
      case Year: // LOOK should we throw warning ?
        return new CalendarDate(cal, dateTime.plus(Math.round(value * MILLISECS_IN_YEAR)));
    }
    throw new UnsupportedOperationException("period units = " + unit);
  }

    CalendarDate(Calendar cal, DateTime dateTime);

}