Пример #1
0
 /// <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));
 }
Пример #2
0
 /// <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));
 }
Пример #3
0
        /// <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));
        }