最近做一个数据统计的功能,需要准点进行统计。
分别是1分钟,5分钟,30分钟,一天。
开始想着写4个计时器分别统计,但获取准点时间比较困难。
比如5分钟数据,10:02分时你得统计9:55-10:00的数据,判断太多。
最后思考下,一个1分钟计时器就可以了,如果到5分钟时间时同时进行1分钟和5分钟数据,后面依次类推。
1、计时器
System.Timers.Timer tradeTimer1 = new System.Timers.Timer();
tradeTimer1.Interval = 1 * 60 * 1000;
tradeTimer1.Elapsed += new System.Timers.ElapsedEventHandler(timer1_Elapsed);
tradeTimer1.Enabled = true;
2、获取准点时间,往前一分钟靠拢
DateTime now = DateTime.Now;
string str = now.ToShortDateString() + " " + now.ToShortTimeString();
DateTime time = Convert.ToDateTime(str);
3、判断统计数据
//一分钟
//五分钟
if (time.Minute == 0 || time.Minute % 5 == 0)
{}
//30分钟
if (time.Minute == 0 || time.Minute == 30)
{}
//一天
if (time.Minute == 0 && time.Hour == 0)
{}