最近,我试图制作一个日历应用程序,该应用程序将向用户显示当前的年度月日期。问题是,如果用户将在第二天继续运行我的应用程序,那么如何通知我呢?如何更改显示的日期?我不想调查当前的日期来更新它。这在c#中是可能的吗。
注意:我尝试了SystemEvent.TimeChanged事件,但只有当用户手动更改控制面板中的时间/日期时,它才能工作。
发布于 2008-11-17 10:15:53
你能简单地计算出午夜前的秒数,然后睡那么长时间吗?
发布于 2008-11-17 10:22:29
@OddThinking的答案将有效(您可以为间隔设置一个计时器,而不是睡觉)。另一种方法是设置一个1分钟间隔的计时器,并简单地检查系统日期是否已更改。由于您每分钟只执行一次轻量级代码,所以我怀疑开销是否会被注意到。
发布于 2010-11-04 14:11:59
public void Main()
{
var T = new System.Timers.Timer();
T.Elapsed += CallBackFunction;
var D = (DateTime.Today.AddDays(1).Date - DateTime.Now);
T.Interval = D.TotalMilliseconds;
T.Start();
}
private void CallBackFunction(object sender, System.Timers.ElapsedEventArgs e)
{
(sender as System.Timers.Timer).Interval = (DateTime.Today.AddDays(1).Date - DateTime.Now).TotalMilliseconds;
}https://stackoverflow.com/questions/295235
复制相似问题