我有時間跨度的陣列是在15個分鐘的間隔,例如,時間跨度顯示:如何在以30個分鐘間隔
00:00:00,
零時15分00秒,
00:30:00,
0點45分00秒,
01:00:00
等
我想循環,只顯示那些間隔30分鐘。我試過使用.compare
,但這並不完全符合我的需要。
例如:
var interval = TimeSpan.FromMinutes(30);
foreach(var t in MyArray)
{
if(TimeSpan.Compare(inteval, t.Time) == 0)
Do something
}
}
這種技術上的工作,但將只匹配00:30:00
。我可以間隔添加到循環並使用類似:
var interval = new TimeSpan(t.Hour, 30, 0)
但只得到00:30:00
,01:30:00
。
是否有辦法讓小時像通配符一樣每30分鐘獲得一次?
我想輸出是:
00:00:00
00:30:00
01:00:00
01:30:00
等
工作,謝謝。你知道是否有可能在linq中以某種方式在實體中執行此操作?我試圖在查詢中做,而不是在視圖中,但說linq不支持實體。 – Jeff
您使用什麼數據類型將TimeSpans存儲在數據庫中? –
該列被定義爲時間。我試過類似於: _timeShiftRepository.QueryWithNoTracking.OrderBy(x => x.TimeShiftName).Where(x =>(int)x.TimeShiftName.TotalMinutes%30 == 0).ToList() – Jeff