/// <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)); }
public static DateInfo CreateLastDayOfMonth(int year, int month) => Create(year, month, DateInfo.DaysInMonth(year, month));