Именно так, как говорится на жестяной основе, мне просто нужен самый эффективный способ подсчета недель (т.е. 7-дневные промежутки, а не календарные недели) между двумя датами на С#.
Самый эффективный способ подсчета количества недель между двумя датами
Ответ 1
Получите количество дней и разделите их на 7.
int weeks = (date1 - date2).TotalDays / 7;
У вас может быть остаток до 6 дней, который не будет включен в число недель.
Ответ 2
Я предполагаю, что вы хотите получить это на основе Calender. Для этого вам нужно System.Globalization
DateTime date1 = DateTime.Now;
DateTimeFormatInfo dinfo = DateTimeFormatInfo.CurrentInfo;
dinfo.Calendar.GetWeekOfYear(date1, CalendarWeekRule.FirstFullWeek, DayOfWeek.Monday)
В соответствии с вашими потребностями вы должны установить правило недели календаря и первый день недели.
Это дает вам номер недели для календаря. вы можете получить то же самое для своей другой даты, разница в количестве ваших недель
Надеюсь, это поможет вам.
Ответ 3
Попробуйте это, чтобы получить количество дней:
TimeSpan ts = date1.Subtract(date2);
int dateDiff = ts.Days();
Затем, как и @Oded, разделим на 7
int totalWeeks = (int) dateDiff / 7;
Ура!