私は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");
}