code: private static LocalDate createDateFromDateAndOffset(LocalDate baseDate, double offsetYearFrac) {
  
  		// Years
  		LocalDate maturity = baseDate.plusYears((int)offsetYearFrac);
  
  		// Months
  		offsetYearFrac = (offsetYearFrac - (int)offsetYearFrac) * 12;
  		maturity = maturity.plusMonths((int)offsetYearFrac);
  
  		// Days
  		offsetYearFrac = (offsetYearFrac - (int)offsetYearFrac) * 30;
  		maturity = maturity.plusDays((int)Math.round(offsetYearFrac));
  
  		return maturity;
  	}
docs: Create a new date by "adding" a year fraction to the start date.
  The year fraction is interpreted in a 30/360 way. More specifically,
  every integer unit advances by a year, each remaining fraction of 12
  advances by a month and each remaining fraction of 30 advances a day.
  
  The function may be used to ease the creation of maturities in spreadsheets.
  
  @param baseDate The start date.
  @param offsetYearFrac The year fraction in 30/360 to be used for adding to the start date.
  @return A date corresponding the maturity.