我想计算现在的检查时间并获得时间。
我有一个字符串“time”,例如......
string t1 = UserParam[12].ToString(); // "9/26"
string t2 = UserParam[13].ToString(); // "14:51\r"
我在我的项目中需要它们,我从许可证服务器获取用户的时间,我想要显示现在的差异。我希望在几小时内显示出来。
我想要时间如何---> 1小时,49分钟
答案 0 :(得分:3)
我认为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
答案 1 :(得分:0)
您可以使用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);
答案 2 :(得分:0)
你希望你的时间在DateTime
结构中。如果您在字符串中包含时间戳信息,则应使用DateTime.TryParse
填充DateTime
。但是如果你在字符串中有时间戳,那么在样式参数(DateTimeStyles
)中指定时区信息就很重要。
然后,您可以通过减去两个TimeSpan
结构来制作DateTime
并使用TotalHours
属性
(dt1 - dt2).TotalHours