我有一个像03223311(hhmmssff)这样的字符串。我要将它与DateTime.Now进行比较,看看这些值之间的差异是否低于200毫秒。
xdate="03223311";
if(Math.Abs(Convert.ToInt32(xdate) - Convert.ToInt32(DateTime.Now.ToString("hhmmssff")))<200)
我尝试在间隔为1的计时器中运行上面的行,但即使我将xdate更改为当前时间,我也无法达到该条件。你知道如何解决问题甚至是更好的方法吗?
答案 0 :(得分:3)
string input = "03223311";
var diff = DateTime.Now.TimeOfDay.Subtract(
TimeSpan.ParseExact(input, "hhmmssff", null)
).TotalMinutes; //or any other value like TotalMilliseconds
答案 1 :(得分:2)
我首先将字符串转换为DateTime,以便您可以比较苹果和苹果,并利用DateTime对象的功能。一旦有两个DateTime对象,就可以减去它们以获得TimeSpan。 TimeSpan将具有TotalMilliseconds属性,您可以将其与200常量进行比较。
var xdateValue = DateTime.ParseExact(xdate, "hhmmssff", CultureInfo.InvariantCulture);
var difference = DateTime.Now - xdateValue;
if (difference.TotalMilliseconds < 200) ...
答案 2 :(得分:1)
if (((DatetTime.Now - DateTime.ParseExact("03223311 ", "hhmmssff", CultureInfo.InvariantCulture))).Milliseconds > 200)
{
}