/// <summary> /// Add quarters. <br /> /// 添加一个季度。 /// </summary> /// <param name="dt"></param> /// <param name="quarters"></param> /// <param name="options"></param> /// <returns></returns> /// <exception cref="ArgumentNullException"></exception> public static DateInfo OffsetByQuarters(DateInfo dt, int quarters, DateTimeOffsetOptions options = DateTimeOffsetOptions.Absolute) { if (options == DateTimeOffsetOptions.Absolute) { return(dt + quarters.Quarters()); } return(OffsetByMonths(dt, quarters * 3, DateTimeOffsetOptions.Relatively)); }
/// <summary> /// Add years. <br /> /// 添加一个季度。 /// </summary> /// <param name="dt"></param> /// <param name="years"></param> /// <param name="options"></param> /// <returns></returns> /// <exception cref="ArgumentNullException"></exception> public static DateInfo OffsetByYears(DateInfo dt, int years, DateTimeOffsetOptions options = DateTimeOffsetOptions.Absolute) { if (options == DateTimeOffsetOptions.Absolute) { return(dt + years.Years()); } return(OffsetByMonths(dt, years * 12, DateTimeOffsetOptions.Relatively)); }
/// <summary> /// Add quarters. <br /> /// 添加一个季度。 /// </summary> /// <param name="dt"></param> /// <param name="months"></param> /// <param name="options"></param> /// <returns></returns> /// <exception cref="ArgumentNullException"></exception> public static DateInfo OffsetByMonths(DateInfo dt, int months, DateTimeOffsetOptions options = DateTimeOffsetOptions.Absolute) { if (options == DateTimeOffsetOptions.Absolute) { return(dt + months.Months()); } var(year, month) = DateTimeCalcHelper.Calc(dt.Year, dt.Month, months); var firstDayOfMonth = dt.SetDate(year, month, 1); var lastDayOfMonth = firstDayOfMonth.LastDayOfMonth().Day; var day = dt.Day > lastDayOfMonth ? lastDayOfMonth : dt.Day; return(dt.SetDate(year, month, day)); }