/// <summary> /// Get the day of the first specified week of the month. /// </summary> /// <param name="dt"></param> /// <param name="dayOfWeek"></param> /// <returns></returns> public static DateTime FirstDayOfMonth(this DateTime dt, DayOfWeek dayOfWeek) { var ret = dt.FirstDayOfMonth(); return(DayOfWeekCalc.TryDaysBetween(ret.DayOfWeek, dayOfWeek, out var day) && day > 0 ? ret.AddDays(day) : ret); }
/// <summary> /// Get the day of the last specified week of the month. /// </summary> /// <param name="dt"></param> /// <param name="dayOfWeek"></param> /// <returns></returns> public static DateTime LastDayOfMonth(this DateTime dt, DayOfWeek dayOfWeek) { var ret = dt.LastDayOfMonth(); return(DayOfWeekCalc.TryDaysBetween(ret.DayOfWeek, dayOfWeek, out var day) && day == 0 ? ret : ret.AddDays(-day)); }