DateTime - StartOfWeek
A DateTime extension method that starts of week.
public static void Main() { DateTime todayDate = DateTime.Now; Console.WriteLine("Current Date : {0}", todayDate.ToFullDateTimeString()); // C# Extension Method: DateTime - StartOfWeek DateTime newDate = todayDate.StartOfWeek(); Console.WriteLine("After calling StartOfWeek: {0}", newDate.ToFullDateTimeString()); }
View Source
using System; public static partial class Extensions { /// <summary> /// A DateTime extension method that starts of week. /// </summary> /// <param name="dt">The dt to act on.</param> /// <param name="startDayOfWeek">(Optional) the start day of week.</param> /// <returns>A DateTime.</returns> public static DateTime StartOfWeek(this DateTime dt, DayOfWeek startDayOfWeek = DayOfWeek.Sunday) { var start = new DateTime(dt.Year, dt.Month, dt.Day); if (start.DayOfWeek != startDayOfWeek) { int d = startDayOfWeek - start.DayOfWeek; if (startDayOfWeek <= start.DayOfWeek) { return start.AddDays(d); } return start.AddDays(-7 + d); } return start; } }