public static DateTime AddTenor(this DateTime dt, Tenor tnr) { switch (tnr.Unit) { case TenorUnit.Sec: return(dt.AddSeconds(tnr.Number)); case TenorUnit.Min: return(dt.AddMinutes(tnr.Number)); case TenorUnit.Hour: return(dt.AddHours(tnr.Number)); case TenorUnit.Day: return(dt.AddDays(tnr.Number)); case TenorUnit.Week: return(dt.AddDays(tnr.Number * 7)); case TenorUnit.Month: return(dt.AddMonths(tnr.Number)); case TenorUnit.Year: return(dt.AddYears(tnr.Number)); default: throw new Exception($"Unknown TenorUnit: [{tnr.Unit}]"); } }
public static DateTime AddTenor(this DateTime dt, Tenor tnr, bool isRounded = false) { if (!isRounded) { return(dt.AddTenor(tnr)); } else { DateTime dt2 = dt.GetRoundDate(tnr.Unit); return(dt2.AddTenor(tnr)); } }