我正在创建一个基于C# asp.net的定时在线测试。我已经使用本地机器时间创建了它。但是,在数据库失去连接或系统挂起的情况下,倒计时计时器必须从机器挂起或意外数据库断开的时间开始计算。例如,用户回答问题10分钟后,系统意外挂起。恢复后,倒计时必须从10分钟开始计算。有谁能帮我用C#编写代码吗?
我已经使用了以下代码,但在上述情况下没有用处。
我已经使用了以下代码,但在上述情况下没有用处。
int totalTime = (Convert.ToInt32(ViewState["totaltime"])) * 60;
DateTime startTime = (DateTime)ViewState["startTime"];
TimeSpan elaspedTime = DateTime.Now.Subtract(startTime);
Literal1.Text = elaspedTime.Hours.ToString() + "h" + ":" + elaspedTime.Minutes.ToString() +
"m" + ":" + elaspedTime.Seconds.ToString() + "s";
int finish = Convert.ToInt32(elaspedTime.TotalSeconds);
int remaingsec = (totalTime - finish);
TimeSpan remainingtime = TimeSpan.FromSeconds(remaingsec);
string answer = string.Format("{0:D2}h:{1:D2}m:{2:D2}s",
remainingtime.Hours,
remainingtime.Minutes,
remainingtime.Seconds,
remainingtime.Milliseconds);
LIteral2.Text = answer;
if (totalTime == finish)
{
lnkFinish_Click(sender, e);
Response.Redirect(@"~/Error.aspx");
}