asp.net 开发网络考试系统 倒计时功能

2025-02-23 04:48:45
推荐回答(3个)
回答1:

用一个timer控件,把interval设为1000(1秒),在Tick事件里处理。
protected void Timer1_Tick(object sender, EventArgs e)
{
if (minute != 0 && second == 0)
{
second = 60;
minute--;
}
else if (hour != 0 && minute == 0 && second == 0)
{
minute = 60;
hour--;
}
else if (hour == 0 && minute == 0 && second == 0)
{
Timer1.Enabled = false;
hour = 0;
minute = 0;
second = 0;
//调用提交试卷的方法
Send();
}
else
{
second--;
}

if (hour < 10)
{
lbl_hour.Text = "0"+hour.ToString();
}
else
{
lbl_hour.Text = hour.ToString();
}

if (minute < 10)
{
lbl_minute.Text = "0"+minute.ToString();
}
else
{
lbl_minute.Text = minute.ToString();
}

if (second < 10)
{
lbl_second.Text = "0"+second.ToString();
}
else
{
lbl_second.Text = second.ToString();
}
}
其中minute、second、hour是定义的全局静态变量,lbl_hour、lbl_minute、lbl_second是用来显示时间的Label控件的ID;

回答2:

后台代码:
public partial class Timer : System.Web.UI.Page
{

private DateTime dtExam = DateTime.Parse("2009-07-22 20:42:00"); //定义时间到期时间

protected void Page_Load(object sender, EventArgs e)
{
}

protected void timerCD_Tick(object sender, EventArgs e)
{
if (this.dtExam < DateTime.Now) //如果设置的时间已过
{
this.timerCD.Enabled = false; //将Timmer置为false
labTimes.Text = "时间到!";
}
else
{
RefreshTime(); //刷新时间
}
}

private void RefreshTime() //刷新时间的方法
{
TimeSpan ts = this.dtExam - DateTime.Now; //时间差
this.labDays.Text = ts.Days.ToString().PadLeft(2, '0') + "天";
this.labTimes.Text = ts.Hours.ToString().PadLeft(2, '0') + ":" + ts.Minutes.ToString().PadLeft(2, '0') + ":" + ts.Seconds.ToString().PadLeft(2, '0');
}
}
前台:


 












根据你自己需求再改下吧

回答3:

新建timer实例timer1,点击开始考试时timer1设置可用,然后把它的interval属性设为60000(60秒执行一次),然后在tick事件里写你要进行的判断就行了