在会议前的一段时间之前找出时间

时间:2016-04-05 09:17:06

标签: c# linq

我正在尝试创建一个我在Windows任务调度程序中使用的提醒服务。然而,我需要的是以snoze按钮旁边的方式复制Outlook的能力。但它说不能在比较中将日期时间转换为bool。

.text-center {
    text-align: center;
    display: table-cell;
    width: 100%;
    vertical-align: middle;
}

.jumbotron {
    width: 100%;
    height: auto;
    overflow: hidden;
    display: table;
}

修改

此处的错误帐户

  

Start.Value.AddMinutes(-reminderLength)

2 个答案:

答案 0 :(得分:2)

在以下行中:

apertureNetEntities.Appointments.Where(a => a.Start.Value.AddMinutes(-reminderLength))

AddMinutes返回DateTimeWhere期望一个函数在其中求值为布尔值。您需要将DateTime与某些内容进行比较以避免错误。

e.g:

apertureNetEntities.Appointments.Where(a => a.Start.Value.AddMinutes(-reminderLength) < DateTime.Now)

答案 1 :(得分:1)

@ strickt01是正确的。

个人我更喜欢格式化它的东西;它更容易阅读。

//where the start time is greater than now minus 30min
var reminderLength = 30;
var timeAfter = DateTime.Now.AddMinutes(-reminderLength);
apertureNetEntities.Appointments.Where(a => a.Start > timeAfter)

更新可能是...... ??

//从现在起30分钟内开始寻找所有约会。

//但仅限于接下来的30分钟

var reminderLength = 30;
var timeBefore = DateTime.Now.AddMinutes(reminderLength);
var currentDateTime = Datetime.Now;
A.Appointments
   .Where(x => x.Start > currentDateTime //greater than now 
            && x.Start < timeBefore //less now + 30min
          )