我如何通过时间获得差异
本文关键字:时间 何通过 | 更新日期: 2023-09-27 18:32:50
我想计算现在时间的检查时间并获取小时数。
例如,我有一个字符串"时间"...
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
结构中。 如果字符串中有时间戳信息,则应使用 DateTime.TryParse
填充DateTime
。 但是,如果您在字符串中有时间戳,则在样式参数 ( DateTimeStyles
) 中指定时区信息非常重要。
然后,您可以通过减去两个DateTime
结构来制作TimeSpan
并使用TotalHours
属性
(dt1 - dt2).TotalHours
您可以使用
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);