Пример #1
0
        /// <summary>
        /// Create <see cref="DateInfo"/> by special year, month and offset info.<br />
        /// 根据指定的年月和偏移信息创建 <see cref="DateInfo"/>
        /// </summary>
        /// <param name="year"></param>
        /// <param name="month"></param>
        /// <param name="weekAtMonth"></param>
        /// <param name="dayOfWeek"></param>
        /// <returns></returns>
        public static DateInfo OffsetByWeek(int year, int month, int weekAtMonth, int dayOfWeek)
        {
            if (weekAtMonth == 0 || weekAtMonth > 5)
            {
                throw new ArgumentException("weekAtMonth is invalid.", nameof(weekAtMonth));
            }

            var targetDay = DateTimeCalcHelper.GetTargetDays(year, month, weekAtMonth, dayOfWeek);

            if (targetDay > DateInfo.DaysInMonth(year, month))
            {
                return(DateInfo.InfinitePast);
            }

            return(DateInfoFactory.Create(year, month, targetDay));
        }
Пример #2
0
 public static DateInfo CreateLastDayOfMonth(int year, int month) => Create(year, month, DateInfo.DaysInMonth(year, month));