计算asp.net中的时间

时间:2015-04-15 14:31:51

标签: c# asp.net sql-server

我正在使用sql server存储员工午餐时间和使用asp.net计算差异,如下所示。现在我想看看它们是否超过30分钟,那么值应该是红色。

if (e.Row.RowType == DataControlRowType.DataRow)
{
    //Lunch Total Time
    Label lunIn = (Label)e.Row.FindControl("lblLunIn");
    Label lunOut = (Label)e.Row.FindControl("lblLunOut");
    Label lunTotal = (Label)e.Row.FindControl("lblLunTotal");
    lunTotal.Text = Convert.ToString(Convert.ToDateTime(lunOut.Text) - Convert.ToDateTime(lunIn.Text));
}

我该怎么办呢?感谢

1 个答案:

答案 0 :(得分:0)

一般来说,我更喜欢使用真实数据源而不是GridViewRows中的文本。您可以通过RowDataBounde.Row.DataItem轻松获取。通过这种方式,您可以防止本地化问题以及您对原始数据的处理。

但是,要从两个DateTime获得分钟的时间,您可以减去它们并使用返回的TimeSpan s TotalMinutes属性:

DateTime dtIn = Convert.ToDateTime(lunIn.Text);
DateTime dtOut = Convert.ToDateTime(lunOut.Text);
TimeSpan duration = dtOut - dtin;
lunTotal.Text = duration.ToString();
if(duration.TotalMinutes > 30)
{
    e.Row.BackColor = Color.Red;
    // or maybe you just want to change the color of the Label
    lunTotal.ForeColor = Color.Red;
}