我正在开发一个允许我创建程序并为其提供任务的项目。现在我正在努力告诉它设置闹钟。报警功能运行良好,但我遇到了问题。当我设置闹钟时,我可以说"晚安"然后程序将我的显示器关闭进入睡眠模式。当闹钟响起时,我希望它在执行警报响起时发生的代码之前10或15秒钟将显示器重新打开。
以下是我的一些代码:
DateTime now = DateTime.Now;
string time = now.GetDateTimeFormats('t')[0];
if (time == Settings.Default.Alarm && Settings.Default.AClockEnbl == true)
{
SetMonitorInState(MonitorState.MonitorStateOn);
}
if (time == Settings.Default.Alarm && Settings.Default.AClockEnbl == true)
{
//All other alarm code
}
我希望第一个if语句告诉命令在Settings.Default.Alarm之前10秒发生
有人可以帮忙吗?
答案 0 :(得分:0)
如果您现在向DateTime添加15秒并将其与闹钟时间进行比较,则可以使用它来打开显示器。
然后你现在可以执行剩下的代码(没有额外的15秒)等于闹钟时间。
如评论中所述,您需要与DateTime而不是字符串进行比较,并使用TimeSpan增加15秒。
答案 1 :(得分:0)
您可以使用TimeSpan
来抵消日期:
beforeTime = now + TimeSpan.FromSeconds(15);
然后将Settings.Default.Alarm
与beforeTime.GetDateTimeFormats('t')[0]
进行比较,以打开显示器。
这就是说,尝试重构你的代码并摆脱这些字符串。如果你真的想要,可以使用DateTime
和TimeSpan
或ms以来的int
,而不是字符串。