私はいくつかのデータ分析ソフトウェアを書いています。生データのタイムベースをアップスケールしたいと思います。私の生データのタイムステップは約2分です。データを5分、時間、日、月のタイムステップでいくつかのデータベーステーブルにスケーリングしたいと思います。精度を維持するために、これらのそれぞれを生データから実行する予定です。
私が現在抱えている問題は、初期値を取得し、それに最も近い「ラウンド」時点を開始点として見つけることです。たとえば、ポイント13/03/12 00:01:36を開始ポイントとして開始します。コードで、最も近い時点として13/03/12 00:00:00を見つけて、計算を開始します。そこから。それぞれの時点で、それぞれの側で時間ステップの半分を取りたいと思います。したがって、12/03/1223:57:30から13/03/1200:02:29は13/03/1200:00:00になります。
データはSQLクエリを使用してAccessから取得され、日付と値は2つの並列配列に格納されます。以下はこれまでの私のコードです。値は、最も近い5分まで上下するのではなく、次の5分まで切り上げられます。
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
ご協力いただきありがとうございます