Needed to find the first day of the next week for a given date. I thought there might be an in-built method to do this, but I didn't see anything.
So I wrote these extension methods - one that uses the CurrentCulture and one that can work on a predefined day of the week.
public static class DateTimeExtensions
{
public static DateTime GetNextWeekStartDate(this DateTime dt,
DayOfWeek weekStartDay)
{
var difference = weekStartDay - dt.DayOfWeek;
if (difference < 0)
difference += 7;
return dt.AddDays(weekStartDay - dt.DayOfWeek + 7);
}
public static DateTime GetNextWeekStartDate(this DateTime dt)
{
CultureInfo ci = Thread.CurrentThread.CurrentCulture;
DayOfWeek weekStartDay = ci.DateTimeFormat.FirstDayOfWeek;
return GetNextWeekStartDate(dt, weekStartDay);
}
}
But I hate adding the 7 there. I am sure this can be done in a more elegant way. Another time perhaps...
No comments:
Post a Comment