如何在 c# 中从另一个时间中减去时间
本文关键字:时间 另一个 | 更新日期: 2024-10-31 21:53:35
我已经将我的代码简化为:
string when = "03/03/15 12:00 18:00";
string difference = Convert.ToString(Convert.ToDateTime(when.Substring(when.Length - 5, 5)) - Convert.ToDateTime(when.Substring(when.Length - 10, 10))).substring(difference.Length - 5, 5);
但它仍然非常复杂,也不起作用:/
基本上我希望字符串差等于 6,因为 18 - 12 是 6。它需要稍微复杂一点,因为我也想进化几分钟。
我是白痴吗?容易吗?
只需将字符串转换为几个有效的DateTime
值,然后减去它们。
Hours
属性将为您提供整小时差异的表示形式,在本例中为 6。
string when = "03/03/15 12:00 18:00";
string[] portions = when.Split(); // 3 items: "03/03/15", "12:00", "18:00"
string yourDateTimeFormat = "MM/dd/yyHH:mm"; // or "dd/MM/yyHH:mm" if the day is first
// create a valid date from 03/03/15 and 12:00
DateTime fromTime = DateTime.ParseExact(
portions[0] + portions[1], yourDateTimeFormat, CultureInfo.CurrentCulture, DateTimeStyles.None);
// create a valid date from 03/03/15 and 18:00
DateTime toTime = DateTime.ParseExact(
portions[0] + portions[2], yourDateTimeFormat, CultureInfo.CurrentCulture, DateTimeStyles.None);
int differenceInHours = (toTime - fromTime).Hours;
根据您对输入的控制程度,您可能需要添加其他逻辑来检查日期是否有效,或者考虑改用DateTime.TryParseExact
。