public override double yearFraction(Date d1, Date d2, Date d3, Date d4) { int dm1 = d1.Day, dm2 = d2.Day; if (dm1 == dm2 || // e.g., Aug 30 -> Feb 28 ? (dm1 > dm2 && Date.isEndOfMonth(d2)) || // e.g., Feb 28 -> Aug 30 ? (dm1 < dm2 && Date.isEndOfMonth(d1))) { return((d2.Year - d1.Year) + (d2.Month - d1.Month) / 12.0); } else { return(Thirty360.US_Impl.Singleton.yearFraction(d1, d2, d3, d4)); } }