我需要从最近7天开始以给定的间隔获取指定的时间。目前,我正在使用以下代码:
If startdate = Nothing Then
startdate = Date.Now.AddDays(-7)
End If
If enddate = Nothing Then
enddate = Date.Now
End If
Dim curstartdate As DateTime = startdate
Dim curenddate As New DateTime
While curenddate < DateTime.Now
Select Case ComboBox1.SelectedItem
Case "every 15 minutes"
curenddate = curstartdate.AddMinutes(15)
Case "every 30 minutes"
curenddate = curstartdate.AddMinutes(30)
Case "every hour"
curenddate = curstartdate.AddHours(1)
Case "every 2 hours"
curenddate = curstartdate.AddHours(2)
Case "every 3 hours"
curenddate = curstartdate.AddHours(3)
Case "every 6 hours"
curenddate = curstartdate.AddHours(6)
Case "every 12 hours"
curenddate = curstartdate.AddHours(12)
Case "every 24 hours"
curenddate = curstartdate.AddHours(24)
End Select
***DO SOME FANCY STUFF***
curstartdate = curenddate
end while
这是有效的,如果我以15分钟的间隔运行此广告(例如9:12),我会得到过去几天的所有小时,包括分钟12,27,42,57 ...,如果代码为速度较慢(这是由于外部因素造成的),即使我仍然是9:12,我也会得到从9:12到9:27的最后一个时间段。
我需要它返回引用到00小时(7天前的午夜)的值。因此,00,15,30,45 ..和最后一个时间应该保留(因此,没有任何超越现在的时间段)
我该怎么办?
*编辑:我是这样做的,这是解决问题的好方法吗? *
If startdate = Nothing Then
startdate = New DateTime(Now.AddDays(-7).Year, Now.AddDays(-7).Month, Now.AddDays(-7).Day, 0, 0, 0)
End If
If enddate = Nothing Then
enddate = Date.Now
End If
Dim curstartdate As DateTime = startdate
Dim curenddate As New DateTime
While curenddate < DateTime.Now
Select Case ComboBox1.SelectedItem
Case "every 15 minutes"
curenddate = curstartdate.AddMinutes(15)
Case "every 30 minutes"
curenddate = curstartdate.AddMinutes(30)
Case "every hour"
curenddate = curstartdate.AddHours(1)
Case "every 2 hours"
curenddate = curstartdate.AddHours(2)
Case "every 3 hours"
curenddate = curstartdate.AddHours(3)
Case "every 6 hours"
curenddate = curstartdate.AddHours(6)
Case "every 12 hours"
curenddate = curstartdate.AddHours(12)
Case "every 24 hours"
curenddate = curstartdate.AddHours(24)
End Select
***DO SOME FANCY STUFF***
curstartdate = curenddate
end while
答案 0 :(得分:0)
稍微清洁一点的选项;
startdate = DateTime.Today.AddDays(-7)
https://docs.microsoft.com/en-us/dotnet/api/system.datetime.today?view=netframework-4.7.2