如何以30分钟的间隔显示TimeSpan

Jef*_*eff 0 c# timespan

我有一系列时间间隔,每隔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

等等

Mat*_*nen 8

你想要的是一个模运算,但由于TimeSpans本身没有定义它,使用TotalMinutes(或另一个属性)来获得一个普通的整数,然后使用modulo:

if ((int)t.TotalMinutes % 30 == 0)
Run Code Online (Sandbox Code Playgroud)