Вы можете использовать перечисление DayOfWeek
DayOfWeek перечисление представляет день недели в календарях , которые имеют семь дней в неделю. Значение констант в этом перечислении варьируется от DayOfWeek.Sunday до DayOfWeek.Saturday. Если отбрасывается на целое число, его значение варьируется от нуля (что указывает DayOfWeek.Sunday) до шести (что указывает на DayOfWeek.Saturday).
Мы можем использовать преобразование в целое число для вычисления разницы от текущей даты того же дня недели
DateTime dtOld = new DateTime(2013,1,8);
int num = (int)dtOld.DayOfWeek;
int num2 = (int)DateTime.Today.DayOfWeek;
DateTime result = DateTime.Today.AddDays(num - num2);
Это также представляется целесообразным создать метод расширения
public static class DateTimeExtensions
{
public static DateTime EquivalentWeekDay(this DateTime dtOld)
{
int num = (int)dtOld.DayOfWeek;
int num2 = (int)DateTime.Today.DayOfWeek;
return DateTime.Today.AddDays(num - num2);
}
}
и теперь вы можете позвонить ему с
DateTime weekDay = Convert.ToDateTime("01/08/2013").EquivalentWeekDay();
Просто мысль: если вы уже находитесь на правильный день, вы можете добавить недель до даты, во время пребывания в тот же день. Поэтому добавьте недели до даты, пока вы не прибудете на текущую неделю. –
есть. Есть ли встроенный метод для этого/ – PaRsH
'DateTime.AddDays (7)' является возможностью добавить одну неделю. Вы можете умножить количество недель на 7 и добавить его. См. [MSDN] (http://msdn.microsoft.com/en-us/library/system.datetime.adddays (v = vs.100) .aspx). –