我正在编写一些数据分析软件,我想升级我的原始数据的时基。我的原始数据的时间步长约为 2 分钟。我想将数据扩展到几个数据库表,时间步长为 5 分钟、每小时、每天和每月。我计划从原始数据中运行每一个,以保持我的准确性。
我目前遇到的问题是取一个初始值并找到我想要的最接近的“圆形”时间点,作为我的起点。例如,我将从 13/03/12 00:01:36 作为起点开始,我希望代码找到 13/03/12 00:00:00 作为最近的时间点,因此它将开始计算从那里。对于每个时间点,我想在每一侧采取一半的时间步长。所以 12/03/12 23:57:30 到 13/03/12 00:02:29 将变为 13/03/12 00:00:00。
使用 SQL 查询从 Access 获取数据,日期和值存储在两个并排的数组中。以下是我到目前为止的代码。它会将值向上舍入到 NEXT 5 分钟,而不是向上或向下舍入到 NEAREST 5 mimutes。
Private Sub RateStateScale(ByVal Parameter As Integer, ByVal Timebase As String)
Dim NewDate(0)
Dim NewData(0)
Dim RecordCounter
Dim MinValue As Date = ScaleDate(0)
Dim startpoint As String
For RecordCounter = 0 To ScaleDate.GetLength(0)
If MinValue > ScaleDate(RecordCounter) Then
MinValue = ScaleDate(RecordCounter)
End If
Next
Do Until MinValue.Minute Mod 5 = 0
MinValue = MinValue.AddMinutes(1)
Loop
End Sub
谢谢你的帮助