C# 对DataGridView中每行的所有时间跨度求和

C# 对DataGridView中每行的所有时间跨度求和,c#,datetime,datagridview,timespan,C#,Datetime,Datagridview,Timespan,这是我的前端,在我的例子中,我想在我的datagridview中添加所有行的总时间。我的datagridview字段包括id、员工代码、日期、timein和超时 这是我的后端,在这里我计算了迟到时间、总小时数、日差和夜差。是否可以根据datagridview上的数据在我的文本框中显示总小时数、深夜数、昼夜差。对不起我的英语,请澄清我的问题 string timeIn = datagridAttendance.CurrentRow.Cells["timeIn"].Value.ToString()

这是我的前端,在我的例子中,我想在我的datagridview中添加所有行的总时间。我的datagridview字段包括id、员工代码、日期、timein和超时

这是我的后端,在这里我计算了迟到时间、总小时数、日差和夜差。是否可以根据datagridview上的数据在我的文本框中显示总小时数、深夜数、昼夜差。对不起我的英语,请澄清我的问题

string timeIn = datagridAttendance.CurrentRow.Cells["timeIn"].Value.ToString();
string timeOut = datagridAttendance.CurrentRow.Cells["timeOut"].Value.ToString();
DateTime tIn = Convert.ToDateTime(timeIn);
DateTime tOut = Convert.ToDateTime(timeOut);
TimeSpan span = tOut - tIn;
txtTotalHours.Text = Convert.ToString(span);
DateTime start = Convert.ToDateTime(txtStart.Text);
txtMe.Text = tIn.ToShortTimeString();
DateTime inTime = Convert.ToDateTime(txtMe.Text);
if (inTime > start)
{
    TimeSpan late = inTime - start;
    txtLate.Text = Convert.ToString(late);
}
else
{
    txtLate.Text = "Not Late";
}
TimeSpan passLength = new TimeSpan(0, 0, 0, 1);
TimeSpan nightTime = new TimeSpan();
while (tIn < tOut)
{
    tIn = tIn.Add(passLength);
    if (tIn.Hour < 6 || tIn.Hour == 23)
    {
        nightTime = nightTime.Add(passLength);
    }
}

txtNightDif.Text = Convert.ToString(nightTime);
TimeSpan day = span - nightTime;
txtDayDif.Text = Convert.ToString(day);
string timeIn=datagridAttention.CurrentRow.Cells[“timeIn”].Value.ToString();
字符串超时=DataGridAttention.CurrentRow.Cells[“timeOut”].Value.ToString();
DateTime tIn=转换为.ToDateTime(timeIn);
DateTime tOut=Convert.ToDateTime(超时);
时间跨度=tOut-tIn;
txtTotalHours.Text=Convert.ToString(span);
DateTime start=Convert.ToDateTime(txtStart.Text);
txtMe.Text=tIn.ToShortTimeString();
DateTime inTime=Convert.ToDateTime(txtMe.Text);
如果(时间>开始)
{
TimeSpan late=开始时间-开始时间;
Text=Convert.ToString(迟);
}
其他的
{
Text=“不迟”;
}
TimeSpan passLength=新的TimeSpan(0,0,0,1);
TimeSpan nightTime=新TimeSpan();
而(锡
您的代码如下所示,数组timein[]timeout[]是DataGridView每行中的值

            DateTime[] timein = { DateTime.Parse("1:00"), DateTime.Parse("3:00"), DateTime.Parse("5:00"), DateTime.Parse("7:00") };
            DateTime[] timeout = { DateTime.Parse("2:00"), DateTime.Parse("4:00"), DateTime.Parse("6:00"), DateTime.Parse("8:00") };

            TimeSpan totalTime = new TimeSpan();

            for (int i = 0; i < timein.Count(); i++)
            {
                totalTime += timeout[i] - timein[i];
            }​
DateTime[]timein={DateTime.Parse(“1:00”)、DateTime.Parse(“3:00”)、DateTime.Parse(“5:00”)、DateTime.Parse(“7:00”);
DateTime[]timeout={DateTime.Parse(“2:00”)、DateTime.Parse(“4:00”)、DateTime.Parse(“6:00”)、DateTime.Parse(“8:00”);
TimeSpan totalTime=新的TimeSpan();
对于(int i=0;i
您可以在数据库中执行此操作,然后以列的形式返回时间跨度的总和。这将更好、更容易。

仅在时间跨度上是可能的,但是,在这种情况下,计算白天和夜间的差异是不可能的。