0

我在我的 ASPX 页面上放置了一个计时器,它在哪里更新了名为 Label1 的 asp:label 上的“当前时间”,但是当页面加载时,我存储了一个名为“endtime”的 DateTime 值,现在我想要做的是什么时候"currenttime" 等于 "endtime" 触发 Response.Redirect(...),我的代码如下所示,

ASPX

 <asp:ScriptManager ID="ScriptManager1" runat="server">
 </asp:ScriptManager>
 <asp:Timer ID="Timer1" runat="server" ontick="Timer1_Tick" Interval="1000">
 </asp:Timer>
 <asp:UpdatePanel ID="UpdatePanel1" runat="server">
       <ContentTemplate>
           <asp:Label CssClass="captions2" ID="Label1" runat="server" Text="Exam Timer"></asp:Label>
       </ContentTemplate>
           <Triggers>

               <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />

           </Triggers>
 </asp:UpdatePanel>

代码背后

protected void Timer1_Tick(object sender, EventArgs e)
    {
        if(...comparison goes here....){

        Response.Redirect("Nextpage.aspx")
        }else{
        Label1.Text = DateTime.Now.ToLongTimeString();
        }
    }

请建议我一个解决方案

4

2 回答 2

3

只需使用该TimeOfDay属性:

if (currentTime.TimeOfDay == endTime.TimeOfDay)

...虽然我怀疑你想使用>=而不是==. 如果你这样做了,请注意endTime午夜之前的情况......如果在午夜之后currentTime结束,你很可能仍然想开火。

老实说,目前还不清楚为什么您只想比较一天中的时间——而不只是比较完整的日期/时间?

于 2013-09-21T07:18:17.680 回答
0

也许你可以使用ToString()方法。http://www.geekzilla.co.uk/View00FF7904-B510-468C-A2C8-F859AA20581F.htm使用此地址重新排列日期值和

if (currentTime.ToString("yyyyMMdd")== endTime.ToString("yyyyMMdd")
于 2013-09-21T08:00:37.680 回答