Подтвердить что ты не робот

Самый эффективный способ подсчета количества недель между двумя датами

Именно так, как говорится на жестяной основе, мне просто нужен самый эффективный способ подсчета недель (т.е. 7-дневные промежутки, а не календарные недели) между двумя датами на С#.

4b9b3361

Ответ 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;

Ура!