我有一系列时间间隔,每隔15分钟,例如:
00:00:00,
00:15:00,
00:30:00,
00: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
}
}
Run Code Online (Sandbox Code Playgroud)
这在技术上有效,但只会匹配00:30:00.我可以在循环中添加间隔并使用类似的东西:
var interval = new TimeSpan(t.Hour, 30, 0)
Run Code Online (Sandbox Code Playgroud)
但那只会得到00:30:00,01:30:00.
有没有办法让时间像一个通配符,每30分钟一次?
我想要的输出是:
00:00:00
00:30:00
01:00:00
01:30:00
等等
你想要的是一个模运算,但由于TimeSpans本身没有定义它,使用TotalMinutes(或另一个属性)来获得一个普通的整数,然后使用modulo:
if ((int)t.TotalMinutes % 30 == 0)
Run Code Online (Sandbox Code Playgroud)