如何在 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。它需要稍微复杂一点,因为我也想进化几分钟。

我是白痴吗?容易吗?

如何在 c# 中从另一个时间中减去时间

只需将字符串转换为几个有效的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

相关文章: