使用TimeSpan计算时差

时间:2013-03-11 22:39:15

标签: c# winforms visual-studio-2010 datetime timespan

我正在尝试计算两个给定时间段的时差,但答案似乎不正确我做错了什么?

我的代码: enter image description here

由于某种原因,amFinish给出的值从16:30更改为16:18:00我不明白为什么!

如果我有一个文本框并且用户输入16.30该如何获取该值并将其计算为16小时30分钟

答案应该是05.30,但我得到05.18。任何sugestions?

2 个答案:

答案 0 :(得分:9)

30%的一小时是18分钟。

16.30小时是16小时和30/100个小时。

16个半小时将是16.50。

答案 1 :(得分:1)

你有小数16.3小时,这是奥德解释的16小时18分钟。

如果需要同时指定小时,分钟和秒,请使用带有三个参数的TimeSpan构造函数的重载:

TimeSpan amStart = new TimeSpan(0, 11, 0);
TimeSpan amFinish = new TimeSpan(16, 30, 0);

如果您需要将string转换为TimeSpan,请使用以下内容:

TimeSpan amFinish = TimeSpan.ParseExact("16.30", @"hh\.mm", CultureInfo.InvariantCulture);