Default.aspx 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <%@ Page Language="C#" AutoEventWireup="true" %>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head id="Head1" runat="server">
  5. <title>Timer Example Page</title>
  6. <script runat="server">
  7. // stockMarketClosing set to 4:00 PM.
  8. static TimeSpan stockMarketClosing = new TimeSpan(16, 0, 0);
  9. // stockMarketOpening set to 9:00 AM and 1 day ahead.
  10. static TimeSpan stockMarketOpening = new TimeSpan(1, 9, 0, 0);
  11. protected void Page_Load(object sender, EventArgs e)
  12. {
  13. OriginalTime.Text = DateTime.Now.ToLongTimeString();
  14. // Turn off Timer on Saturday and Sunday.
  15. if (DateTime.Now.DayOfWeek == DayOfWeek.Saturday
  16. || DateTime.Now.DayOfWeek == DayOfWeek.Sunday)
  17. {
  18. Timer1.Enabled = false;
  19. }
  20. }
  21. protected void StockPricePanel_Load(object sender, EventArgs e)
  22. {
  23. StockPrice.Text = GetStockPrice();
  24. TimeOfPrice.Text = DateTime.Now.ToLongTimeString();
  25. }
  26. private string GetStockPrice()
  27. {
  28. double randomStockPrice = 50 + new Random().NextDouble();
  29. return randomStockPrice.ToString("C");
  30. }
  31. protected void Timer_Tick(object sender, EventArgs e)
  32. {
  33. if (DateTime.Now.TimeOfDay.CompareTo(stockMarketClosing) > 0)
  34. {
  35. // Turn off Timer after closing on Friday.
  36. if (DateTime.Now.DayOfWeek == DayOfWeek.Friday)
  37. {
  38. Timer1.Enabled = false;
  39. }
  40. else
  41. {
  42. // Set next Tick event to tomorrow's opening time.
  43. Timer1.Interval = (int)stockMarketOpening.Subtract
  44. (DateTime.Now.TimeOfDay).TotalMilliseconds;
  45. }
  46. }
  47. }
  48. </script>
  49. </head>
  50. <body>
  51. <form id="form1" runat="server">
  52. <asp:ScriptManager ID="ScriptManager1" runat="server" />
  53. <asp:Timer ID="Timer1" OnTick="Timer_Tick" runat="server" Interval="15000" />
  54. <asp:UpdatePanel OnLoad="StockPricePanel_Load" ID="StockPricePanel" runat="server" UpdateMode="Conditional">
  55. <Triggers>
  56. <asp:AsyncPostBackTrigger ControlID="Timer1" />
  57. </Triggers>
  58. <ContentTemplate>
  59. Stock price is <asp:Label id="StockPrice" runat="server"></asp:Label><BR />
  60. as of <asp:Label id="TimeOfPrice" runat="server"></asp:Label>
  61. </ContentTemplate>
  62. </asp:UpdatePanel>
  63. <div>
  64. Page originally created at <asp:Label ID="OriginalTime" runat="server"></asp:Label>
  65. </div>
  66. </form>
  67. </body>
  68. </html>