我有时间跨度的阵列是在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