ASP C#时间码

时间:2015-01-09 11:22:44

标签: c# asp.net

您好我正在尝试制作秒表。 我使用了来自互联网的代码来计算分钟和秒数: 这是代码(工作正常)

    public partial class Ingelogd2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

if (!IsPostBack)
            {
                sw = new Stopwatch();
                sw.Start();
            }
}



private static Stopwatch sw;
    protected void tm1_Tick(object sender, EventArgs e)
    {
        long sec = sw.Elapsed.Seconds;
        long min = sw.Elapsed.Minutes;

    if (min < 60)
        {
            if (min < 10)
               Henkie.Text = "0" + min;
            else
                Henkie.Text = min.ToString();

                Henkie.Text += " : ";

            if (sec < 10)
                Henkie.Text += "0" + sec;
            else
                Henkie.Text += sec.ToString();
        }
        }
        else
        {
            sw.Stop();
            Response.Redirect("Ingelogd2.aspx");
        }
    }
} 
}

我从这段代码得到的结果是例如:00:14(标签“Henkie”上显示14秒后)

现在我已经尝试添加小时数,所以我已经制作了这段代码:

    public partial class Ingelogd2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

if (!IsPostBack)
            {
                sw = new Stopwatch();
                sw.Start();
            }
}


    private static Stopwatch sw;
    protected void tm1_Tick(object sender, EventArgs e)
    {
        long sec = sw.Elapsed.Seconds;
        long min = sw.Elapsed.Minutes;
        long hour = sw.Elapsed.Hours;
        long day = sw.Elapsed.Days;

        if (day < 1)
        {
            if (hour < 10)
                Henkie.Text = "0" + hour;
            else 
                Henkie.Text = hour.ToString();

                Henkie.Text += " : ";
            if (min < 10)
               Henkie.Text = "0" + min;
            else
                Henkie.Text = min.ToString();

                Henkie.Text += " : ";

            if (sec < 10)
                Henkie.Text += "0" + sec;
            else
                Henkie.Text += sec.ToString();
        }
        else
        {
            sw.Stop();
            Response.Redirect("Ingelogd2.aspx");
        }
    }
} 
}

我想它会显示例如(0小时12分16秒后00:12:16),但我不会工作。它仅在0小时,12分钟,16秒后显示12:16。我不知道为什么这不起作用。有人可以帮助我吗?

1 个答案:

答案 0 :(得分:3)

我有一个问题,在你继续阅读实际解决方案之前,我希望你能回答这个问题。

你为什么这样做?我的意思是所有代码。所有这些操作,添加零,所有if-else语句。

真正的问题是为什么简单的复杂化?

现在你的回答。只需显示Elapsed属性即可。这将在内部使用ToString格式调用c,如果存在,将显示hh:mm:ss可选日期。

如果你想省略,比方说,第一个例子中的小时数你仍然不需要写下所有代码,你只是:

sw.Elapsed.ToString("mm\\:ss")