首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

判断时间间隔,该怎么解决

2012-01-16 
判断时间间隔有个方法,需要从设定的时间起,每隔X小时执行一次我是判断系统当前时间 大于 设定的时间 起 与

判断时间间隔
有个方法,需要从设定的时间起,每隔X小时执行一次
我是判断系统当前时间 大于 设定的时间 起 与 相隔小时 取模,如果为零时执行 

C# code
if(Convert.ToDateTime(HourMinute) >= Convert.ToDateTime(myHourMinute) && (Convert.ToDateTime(HourMinute) - Convert.ToDateTime(myHourMinute)) % X小时 == 0){ 执行方法。。}//HourMinute 系统当前小时分钟//myHourMinute 设定开始执行的小时分钟


现在是 怎样让 (Convert.ToDateTime(HourMinute) - Convert.ToDateTime(myHourMinute)) 为整数 与 X小时取模

[解决办法]
DateTime d1=DateTime.Parse("2006-06-07 09:00:00");
DateTime d2=DateTime.Parse("2006-06-11 12:00:00");

System.TimeSpan ND=d2-d1;
int hn=ND.Hours; //小时差

然后再将之个小时差进行%你多少小时执行一次。如:

if (hn%4==0)
{
//执行。。
}
[解决办法]
1楼正解,要用Timer。。。
否则你这个方法什么时候执行???
算多少小时:
C# code
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()方法来比较获得,现在的时间是否达到或者已经超过程序需要运行的时间,如果是 那么我们就让程序执行,否则 就不执行

热点排行