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