【问题标题】:Get Last 3 weeks before deadline for two certain date time in C#在 C# 中获取两个特定日期时间的截止日期前最后 3 周
【发布时间】:2016-02-26 10:03:22
【问题描述】:

我有两个日期作为开始日期和结束日期。我需要在我设定的结束日期/截止日期前 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
}

【问题讨论】:

  • 那么,你的问题是什么?
  • 如果您的开始日期晚于(结束日期的 21 天之前)怎么办?这是有效的场景吗?我的意思是说如果你的开始日期和结束日期之间的差异小于 21 天,你会怎么做?
  • @VinaySinha 我们将制定一些规则,至少有 12 周的时间来创建活动。我们将在截止日期前 3 周开始每周发送提醒
  • 好的,那么@Pheonyx 的答案是正确的

标签: c# datetime week-number


【解决方案1】:

您的结束日期前 3 周是 21 天。

var endDateMinusThreeWeeks = end.AddDays(-21);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-18
    • 2019-12-29
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多