gpt4 book ai didi

.net - 如何将 Vb.net 中的日期时间四舍五入到最接近的 5 分钟

转载 作者:行者123 更新时间:2023-12-01 08:35:00 24 4
gpt4 key购买 nike

我正在编写一些数据分析软件,我想升级我的原始数据的时基。我的原始数据的时间步长约为 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 分钟,而不是向上或向下舍入到最近 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

谢谢你的帮助

最佳答案

让我们尝试一些 VB,以实现“四舍五入到最近的 5 分钟”功能:

' just some date, should be a parameter to your function
Dim mydatetime = new DateTime(2012,3,12,23,57,30)

' split into date + time parts
Dim datepart = mydatetime.Date
Dim timepart = mydatetime.TimeOfDay

' round time to the nearest 5 minutes
timepart = TimeSpan.FromMinutes(Math.Floor((timepart.TotalMinutes+2.5)/5.0) * 5.0)

' combine the parts
Dim newtime = datepart.Add(timepart)
' a function would return this value

关于.net - 如何将 Vb.net 中的日期时间四舍五入到最接近的 5 分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12478031/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com