我正在计算一个工人的加班时间。我已经将数据加载到datagridview中。我已将column命名为startot(位置第5)和endot(位置第6)。 这是我计算工期的代码
TimeSpan duration = new TimeSpan();
foreach (DataGridViewRow row in attenViewGrid.Rows)
{
string start = row.Cells[5].Value.ToString();
string end = row.Cells[6].Value.ToString();
duration += DateTime.Parse(end).Subtract(DateTime.Parse(start));
}
现在,当加班时间从上午10:00开始到第二天上午9:00时,我将面临问题。在一段时间内进行计算的最佳方法是什么。
答案 0 :(得分:1)
您应该在表格单元格中指定日期和时间,当您通过解析时间字符串创建datetime对象时,它会设置固定日期。
否则,您可以设置一天递增的条件:
TimeSpan duration = new TimeSpan();
foreach (DataGridViewRow row in attenViewGrid.Rows)
{
string start = row.Cells[5].Value.ToString();
string end = row.Cells[6].Value.ToString();
if(DateTime.Parse(end).Compare(DateTime.Parse(start)) < 0)
duration += Timespan.FromDays(1);
duration += DateTime.Parse(end).Subtract(DateTime.Parse(start));
}