我想计算现在时间的检查时间并获取时间。
例如,我有一个字符串“时间”......
string t1 = UserParam[12].ToString(); // "9/26"
string t2 = UserParam[13].ToString(); // "14:51\r"
我在我的项目中需要它们,我从许可证服务器获取用户的时间,我想展示到现在的差异。我想在几个小时内显示这个。
我想要一个时间 ---> 1 小时 49 分钟
我假设t1
是月份和日期,t2
是小时和分钟。
您可以使用DateTime.ParseExact
:
string t1 = "9/26";
string t2 = "14:51";
DateTime dt = DateTime.ParseExact(string.Format("{0} {1}", t1, t2), "M/dd HH:mm", CultureInfo.InvariantCulture);
TimeSpan diff = DateTime.Now - dt;
double totalHours = diff.TotalHours; // 0.726172292194444
编辑:
我收到一个错误 --> 格式不正确
可能是因为您在字符串末尾有不需要的字符,如"14:51\r"
. 您可以使用Trim
或TrimEnd
删除它们。例如:
string t2 = UserParam[13].ToString().TrimEnd(new []{ '\r', '\n' }); // 14:51
您可以使用DateTime.Subtract
来计算日期和时间之间的差异:
string date = "9/26 14:51";
DateTime dt = DateTime.ParseExact(date, "M/dd HH:mm", CultureInfo.InvariantCulture);
TimeSpan diff = DateTime.Now.Subtract(dt);
你会想要你的时间在DateTime
结构中。如果字符串中有时间戳信息,则应DateTime.TryParse
使用DateTime
. 但是,如果您在字符串中有时间戳,那么在样式参数( )中指定时区信息将很重要。DateTimeStyles
然后您可以TimeSpan
通过减去两个结构来获取 make aDateTime
并使用该TotalHours
属性
(dt1 - dt2).TotalHours