2016-02-26 1 views
1

У меня есть две даты как дата начала и дата окончания. Мне нужно отправить напоминание 3weeks до даты окончания/срока окончания, которую я установил.Получить последние 3 недели до крайнего срока для двух определенных дат в C#

var start= DateTime.Now; 
var end = new DateTime(2016, 10, 25); 
var timeParts = StartEndDate.Split(new char[1] { ':' }); 

var eventstartDate = new DateTime(start.Year, start.Month, start.Day, 
int.Parse(timeParts[0]), int.Parse(timeParts[1]), int.Parse(timeParts[2])); 


var eventEnDate = new DateTime(end .Year, end .Month, end .Day, 
int.Parse(timeParts[0]), int.Parse(timeParts[1]), int.Parse(timeParts[2])); 

TimeSpan ts = eventEnDate - eventstartDate; 

int totaldays = ts.Days; 

int totalWeeks = totaldays/7; 

//Add 7 days for each loop until end date 
for (DateTime ds= start; ds< eventEnDate; ds= ds.AddDays(7)) 
{ 
    //DO something so to get last 3 week prior to end date to set reminder 
} 
+1

Итак, в чем ваш вопрос? –

+0

Что делать, если ваши стартовые дни падают после (до 21 дня окончания)? это правильный сценарий? Я хочу сказать, что вы будете делать, если разница между датой начала и датой окончания составляет менее 21 дня? –

+0

@VinaySinha у нас будет некоторый набор правил, чтобы иметь минимум 12 недель для создания события. и мы отправим напоминание каждую неделю, которая начинается за 3 недели до крайнего срока – APALALA

ответ

2

За 3 недели до вашей даты окончания 21дней.

var endDateMinusThreeWeeks = end.AddDays(-21);