我正在计算dateTimePicker2和dateTimePicker1之间的差异,并将其转换为分钟,
durinmin = Convert.ToInt32((dateTimePicker2.Value - dateTimePicker1.Value).TotalMinutes);问题是,例如,如果差异值为"00:17:40",则为durinmin = 18。但我只想保留已完成分钟的值,即durinmin=17是我希望我的程序考虑的值。怎么弄到?
发布于 2015-12-23 08:30:42
话虽如此,我并没有预料到这种行为,我只是注意到Convert.ToInt32循环而不是截断--所以它的行为与预期完全一致。TotalMinutes属性返回17.6666 (etc),它被舍入到18。
您所需要做的就是使用强制转换而不是方法--对int的转换将截断为0:
TimeSpan difference = dateTimePicker2.Value - dateTimePicker1.Value;
int minutes = (int) difference.TotalMinutes;发布于 2015-12-23 08:28:51
只需使用Math.Floor
durinmin = (int)Math.Floor((dateTimePicker2.Value - dateTimePicker1.Value).TotalMinutes);发布于 2015-12-23 08:32:11
不要使用TotalMinutes,而是使用TimeSpan的Minutes属性:
durinmin = Convert.ToInt32((dateTimePicker2.Value - dateTimePicker1.Value).Minutes);https://stackoverflow.com/questions/34431439
复制相似问题