Как я могу определить «недели», используя DateTime

#c#

#c#

Вопрос:

У меня есть столбец даты начала, вызываемый StartDate в таблице базы данных. Мне нужно определить, сколько недель прошло с даты начала до сегодняшнего дня.

Вот мой код:

 DateTime startDate = new DateTime(StartedDate);
if (startDate.addDays(7) == DateTime.Today) {
    // One week elapsed.
} 
  

Допустим startDate , 29.09.2016. Если я добавлю 7 дней, общее количество станет 07.10.2016.
Если, например, сегодня 7.10.2016 — та же дата, что и выше, значит, с даты начала есть 1 неделя. Как я могу определить количество недель для дат в будущем?

Комментарии:

1. SO — это не домашняя работа. Сделайте это сами.

2. Я делаю это сам. Мне просто нужны комментарии, чтобы исправить меня или помочь мне. Мы все так начинали. Извините, я новичок в программировании.

Ответ №1:

Попробуйте

 if(DateTime.Now.Subtract(StartDate).TotalDays%7==0)
  

Это даст вам модуль дней и будет равен 0 каждые 7 дней. Однако это будет зависеть от времени (если StartDate равен 2:00 вечера, дней будет 6 до 2:00 вечера на 7-й день). Если вас интересует только день (а не время после полуночи), используйте:

  if(DateTime.Now.Date.Subtract(StartDate.Date).TotalDays%7==0)
  

Комментарии:

1. Хорошо, спасибо, но как насчет того, хочу ли я определить месяцы? Какова формула для месяцев с тех пор, как я получаю недели. большое вам спасибо, сэр.

2. если (DateTime.Now.Month> Дата начала. Месяц)

3. Вау, не думай об этом. Хе-хе, спасибо, сэр, вы великолепны: D я новичок в этой области, еще раз спасибо.

4. Встроенные классы даты / времени / времени обычно не обрабатываются месяцами для вычисления, потому что количество дней в месяце варьируется в зависимости от того, какие месяцы задействованы (структура временных интервалов даже не имеет свойства Months), и если задействован февраль, вы должны учитывать високосный год. Если вы хотите выполнить вычисления даты в месяцах (точно), вам, вероятно, придется написать это самостоятельно.