最近做一個數據統計的功能,需要準點進行統計。
分別是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)
{}