c#中计算时差的正确方法
Proper way to calculat time difference in c#
我正在计算一个工人的加班时间。我已经将数据加载到 datagridview 中。我将列命名为 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:00am 的问题。什么是计算持续时间的最佳方法。
您应该在 table 单元格中指定日期和时间,当您通过解析时间字符串创建日期时间对象时,它会设置一个固定日期。
否则,您可以设置一天增量的条件:
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));
}
我正在计算一个工人的加班时间。我已经将数据加载到 datagridview 中。我将列命名为 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:00am 的问题。什么是计算持续时间的最佳方法。
您应该在 table 单元格中指定日期和时间,当您通过解析时间字符串创建日期时间对象时,它会设置一个固定日期。
否则,您可以设置一天增量的条件:
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));
}