四舍五入 dateTimePicker 值

Round off dateTimePicker value

我正在计算 dateTimePicker2dateTimePicker1 之间的差异并将其转换为分钟,

durinmin = Convert.ToInt32((dateTimePicker2.Value - dateTimePicker1.Value).TotalMinutes);

问题是,例如,如果差值为“00:17:40”,则 durinmin = 18。但我只想保留已完成分钟的值,即 durinmin=17 是我希望我的程序考虑的值。如何获得?

只需使用Math.Floor

durinmin = (int)Math.Floor((dateTimePicker2.Value - dateTimePicker1.Value).TotalMinutes);

虽然说过我不希望出现这种行为,但我只是注意到 Convert.ToInt32 舍入而不是截断 - 所以它的行为完全符合预期。 TotalMinutes 属性 返回 17.6666(等),四舍五入为 18。

您需要做的就是使用转换而不是方法 - 转换为 int 将截断为 0:

TimeSpan difference = dateTimePicker2.Value - dateTimePicker1.Value;
int minutes = (int) difference.TotalMinutes;

不使用 TotalMinutes,而是使用 TimeSpan 的分钟 属性:

durinmin = Convert.ToInt32((dateTimePicker2.Value - dateTimePicker1.Value).Minutes);