class ShiftedBlackIborCapletFloorletExpiryStrikeVolatilities implements BlackIborCapletFloorletVolatilities, ImmutableBean, Serializable {

  @Override
  public double relativeTime(ZonedDateTime dateTime) {
    ArgChecker.notNull(dateTime, "dateTime");
    LocalDate valuationDate = valuationDateTime.toLocalDate();
    LocalDate date = dateTime.toLocalDate();
    return dayCount.relativeYearFraction(valuationDate, date);
  }

  @ImmutableConstructor private  ShiftedBlackIborCapletFloorletExpiryStrikeVolatilities(
      IborIndex index,
      ZonedDateTime valuationDateTime,
      Surface surface,
      Curve shiftCurve);

}