应用于数据刷新,为了控制用户对数据的刷新频率。
记录用户上次刷新时间为preTime,然后用当前时间减去preTime,所得的时间间隔和事先定义好的间隔 updateSpaceTime比较,若小于,则不执行刷新。
方法如下:
private readonly string updateSpaceTime = "1";
....
string preTime = "2006-10-13 10:59:07";
....
if(System.DateTime.Now.Subtract(DateTime.Parse(preTime)) > TimeSpan.Parse(this.updateSpaceTime))
{
//执行刷新
}
主要讲述一下TimeSpan的使用:
即要先定义updateSpaceTime,其定义规则如下。
[ws][-]{ d | [d.]hh:mm[:ss[.ff]] }[ws]
方括号(“[”和“]”)中的项是可选的;需要从大括号(“{”和“}”)内由竖线 (|) 分隔的替换选项列表中选择一项;冒号和句号(“:”和“.”)是必需的原义字符;其他项如下。
项 |
说明 |
ws |
可选的空白 |
"-" |
可选的减号,指示负 TimeSpan |
d |
天,范围从 0 到 10675199 |
hh |
小时,范围从 0 到 23 |
mm |
分钟,范围从 0 到 59 |
ss |
可选的秒,范围从 0 到 59 |
ff |
可选的秒的小数部分,有 1 到 7 个小数位 |
s 的分量必须整体指定大于或等于 MinValue 并小于或等于 MaxValue 的时间间隔。
举下面几个例子以说明:
' String to Parse TimeSpan or Exception
' --------------- ---------------------
' 0 00:00:00
' 14 14.00:00:00
' 1:2:3 01:02:03
' 0:0:0.250 00:00:00.2500000
' 10.20:30:40.50 10.20:30:40.5000000
' 99.23:59:59.9999999 99.23:59:59.9999999
' 0023:0059:0059.0099 23:59:59.0099000
' 24:0:0 TimeSpan overflowed because the duration is too long.
' 0:60:0 TimeSpan overflowed because the duration is too long.
' 0:0:60 TimeSpan overflowed because the duration is too long.
' 10: Input string was not in a correct format.
' :10 Input string was not in a correct format.
' 10:20: Input string was not in a correct format.
' .123 Input string was not in a correct format.
' 10. Input string was not in a correct format.
' 10.12 Input string was not in a correct format.
比如你要设定间隔1天,就用1;间隔12小时就用12:0
对于[ws][-]{ d | [d.]hh:mm[:ss[.ff]] }[ws]我再加入一点自己的理解:
[]内的可有可无。d或者[d.]hh:mm[:ss[.ff]]必须选择一项,即如果选d就只能表示完整的天。hh:mm是必须的,前面如果有天就用d.,后面如果有秒就加:ss,秒后如果还有毫秒就再加.ff。