2016-02-26 40 views
1

我有两个日期作为开始日期和结束日期。我需要在我设定的结束日期/截止日期前3周发送提醒。获取C#中两个特定日期时间的截止日期前的最后3周

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); 
相关问题