我如何通过时间获得差异

本文关键字:时间 何通过 | 更新日期: 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" .您可以使用TrimTrimEnd来删除它们。例如:

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);