【问题标题】:Sum all the Timespan per row in DataGridView汇总 DataGridView 中每行的所有时间跨度
【发布时间】:2015-10-19 06:23:30
【问题描述】:

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

这是我的后端,在这里我计算了迟到、总小时数、日差和夜差。是否可以根据我的 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);

【问题讨论】:

    标签: c# datetime datagridview timespan


    【解决方案1】:

    您的代码将如下所示,其中数组 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];
                }​
    

    【讨论】:

      【解决方案2】:

      您可以在数据库中执行此操作,然后将时间跨度的总和作为一列返回。这样会更好,也更容易。

      【讨论】:

      • 只有时间跨度是可能的,但是,对于这种情况,计算日间差异和夜间差异是不可能的。
      猜你喜欢
      • 2023-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-10
      • 2016-01-09
      • 2018-05-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多