ASP C#时间代码

ASP C#时间代码,c#,asp.net,C#,Asp.net,你好,我在做秒表。 我使用了互联网上的一个代码来计算分秒: 这是代码(工作正常) public分部类Ingelogd2:System.Web.UI.Page { 受保护的无效页面加载(对象发送方、事件参数e) { 如果(!IsPostBack) { sw=新秒表(); sw.Start(); } } 专用静态秒表开关; 受保护的无效tm1_勾号(对象发送方、事件参数e) { 长秒=短波经过的秒数; 长分钟=短波经过的分钟数; 如果(最小值

你好,我在做秒表。 我使用了互联网上的一个代码来计算分秒: 这是代码(工作正常)

public分部类Ingelogd2:System.Web.UI.Page
{
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!IsPostBack)
{
sw=新秒表();
sw.Start();
}
}
专用静态秒表开关;
受保护的无效tm1_勾号(对象发送方、事件参数e)
{
长秒=短波经过的秒数;
长分钟=短波经过的分钟数;
如果(最小值<60)
{
如果(最小值<10)
Henkie.Text=“0”+分钟;
其他的
Henkie.Text=min.ToString();
Text+=“:”;
如果(第10节)
文本+=“0”+秒;
其他的
Henkie.Text+=sec.ToString();
}
}
其他的
{
sw.Stop();
重定向(“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");
        }
    }
} 
}
public分部类Ingelogd2:System.Web.UI.Page
{
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!IsPostBack)
{
sw=新秒表();
sw.Start();
}
}
专用静态秒表开关;
受保护的无效tm1_勾号(对象发送方、事件参数e)
{
长秒=短波经过的秒数;
长分钟=短波经过的分钟数;
长时间=短程运行时间;
长日=sw.已用天数;
如果(第1天)
{
如果(小时<10)
Henkie.Text=“0”+小时;
其他的
Henkie.Text=hour.ToString();
Text+=“:”;
如果(最小值<10)
Henkie.Text=“0”+分钟;
其他的
Henkie.Text=min.ToString();
Text+=“:”;
如果(第10节)
文本+=“0”+秒;
其他的
Henkie.Text+=sec.ToString();
}
其他的
{
sw.Stop();
重定向(“Ingelogd2.aspx”);
}
}
} 
}

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

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

你为什么要这么做?我是说所有这些代码。所有这些操作,加零,所有那些if-else语句

真正的问题是为什么要把简单的事情复杂化

现在回答你的问题。只需显示
已用时间
属性即可。这将使用
c
格式在内部调用
ToString
,该格式将显示
hh:mm:ss
,如果存在,则显示可选天数

如果您想省略,比如说,第一个示例中的小时,您仍然不需要编写所有代码,您只需:

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

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

你为什么要这么做?我是说所有这些代码。所有这些操作,加零,所有那些if-else语句

真正的问题是为什么要把简单的事情复杂化

现在回答你的问题。只需显示
已用时间
属性即可。这将使用
c
格式在内部调用
ToString
,该格式将显示
hh:mm:ss
,如果存在,则显示可选天数

如果您想省略,比如说,第一个示例中的小时,您仍然不需要编写所有代码,您只需:

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

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

你为什么要这么做?我是说所有这些代码。所有这些操作,加零,所有那些if-else语句

真正的问题是为什么要把简单的事情复杂化

现在回答你的问题。只需显示
已用时间
属性即可。这将使用
c
格式在内部调用
ToString
,该格式将显示
hh:mm:ss
,如果存在,则显示可选天数

如果您想省略,比如说,第一个示例中的小时,您仍然不需要编写所有代码,您只需:

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

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

你为什么要这么做?我是说所有这些代码。所有这些操作,加零,所有那些if-else语句

真正的问题是为什么要把简单的事情复杂化

现在回答你的问题。只需显示
已用时间
属性即可。这将使用
c
格式在内部调用
ToString
,该格式将显示
hh:mm:ss
,如果存在,则显示可选天数

如果您想省略,比如说,第一个示例中的小时,您仍然不需要编写所有代码,您只需:

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


您在两个位置错过了+=更改Henkie.Text=min.ToString();to Henkie.Text+=min.ToString();还包括Henkie.Text=“0”+分钟;到Henkie.Text+=“0”+分钟;或者您可以使用.Net Framework中的内置秒表对象。谢谢,我还必须更改:Henkie.Text=“0”+min;到Henkie.Text+=“0”+分钟;尝试
Henkie.Text=string.Format(“{0:00}:{1:00}:{2:00}”,小时、分钟、秒)我忍不住问你为什么有
私人静态秒表软件。静态意味着应用程序中有一个秒表实例,所有用户都将引用同一个实例。因此,如果两个用户同时访问页面,观察到的时间会发生奇怪的事情……您错过了+=在两个地方更改Henkie.Text=min.ToStr