日期:2014-05-18 浏览次数:20895 次
if(Convert.ToDateTime(HourMinute) >= Convert.ToDateTime(myHourMinute) && (Convert.ToDateTime(HourMinute) - Convert.ToDateTime(myHourMinute)) % X小时 == 0) { 执行方法。。 } //HourMinute 系统当前小时分钟 //myHourMinute 设定开始执行的小时分钟
TimeSpan ts=DateTime.Now-startTime; int hour=(int)ts.TotalHours;
------解决方案--------------------
只取小时是会有很大的误差的。。如果时间不需要多精确的话,那至少也是取分钟。。需要更精确的就是秒。。
即:TimeSpan ts=DateTime.Now-startTime;
if((int)ts.TotalMinutes==120)
{
startTime=startTime.AddHours(2);
……
……
}
------解决方案--------------------
Convert.ToDateTime(HourMinute).Hour -Convert.ToDateTime(myHourMinute).Hour 这个出来的一定是整数
取模就更简单了
if(Convert.ToDateTime(HourMinute).Hour -Convert.ToDateTime(myHourMinute).Hour % 2 == 0)
{
//你的业务
}
------解决方案--------------------
首先,想要准确的得到0的可能性并不大,因此建议使用大于或者等于间隔时间 来判断,
其次,建议使用C#的DateTime对象来解决这个问题,
我们先将系统当前时间谁置为一个DateTime对象 然后,将这个时间加上一个间隔时间 得到一个未来的时间 newdate
然后,我们省下的任务就是使用这个 newdate.compareTo()方法来比较获得,现在的时间是否达到或者已经超过程序需要运行的时间,如果是 那么我们就让程序执行,否则 就不执行