ASP.NET Tutorial/Development/DateTime

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Assign DateTime value to asp:Label (C#)

<%@Page Language="C#" %>
<script runat="server">
   void Page_Load(Object Sender, EventArgs e) {
      DateTime Now = DateTime.Now;
      int intHour = Now.Hour;
      Label1.Text = "The time is now " + Now.ToString("T") + "";
      if (intHour < 12) {
         Label1.Text +="Good morning!";
      } else if (intHour > 12 & intHour < 18) {
         Label1.Text +="Good afternoon!";
      } else {
         Label1.Text +="Good evening!";
      }
   }
</script>
<html><body>
   <form runat="server">
      <asp:Label id="Label1" runat="server"/>
   </form>
</body></html>


Calculates the number of days until a given date

File: DaysUntilDates.asmx

<%@ WebService Language="C#" CodeBehind="~/App_Code/DaysUntilDates.cs" Class="DaysUntilDates" %>
File: \App_Code\DaysUntilDates.cs
using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;

[WebService(Namespace = "http://tempuri.ru/", Description="Calculates the number of days until a given date.")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class DaysUntilDates : System.Web.Services.WebService {
    [WebMethod]
    public int DaysUntil(DateTime date)
    {
        return DaysUntilDate(date.Month, date.Day);
    }
    [WebMethod]
    public int DaysUntilHalloween()
    {
        return DaysUntilDate(10, 31);
    }
    [WebMethod]
    public int DaysUntilChristmas()
    {
        return DaysUntilDate(12, 25);
    }
    private int DaysUntilDate(int month, int day)
    {
        DateTime targetDate;
        targetDate = DateTime.Parse(month.ToString() + "/"
                   + day.ToString() + "/"
                   + DateTime.Today.Year);
        if (DateTime.Today > targetDate)
        {
            targetDate = targetDate.AddYears(1);
        }
        TimeSpan timeUntil = targetDate - DateTime.Today;
        return timeUntil.Days;
    }    
}


DateTime and TimeSpan

<%@ Page %>
<script language="C#" runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
  DateTime startTime, endTime;
  string output = "";
  TimeSpan span;
  
  startTime=DateTime.Now;
  for (int i=1;i<10000;i++)
  {
    output += i.ToString() + " ";
  }
  endTime=DateTime.Now;
  span=new TimeSpan(endTime.Ticks-startTime.Ticks);
  Response.Write("<hr>Time Using Concatenation: " + span.TotalSeconds.ToString() + "<hr>");
  startTime=DateTime.Now;
  System.Text.StringBuilder sb = new System.Text.StringBuilder(10000);
  for (int i=1;i<10000;i++)
  {
    sb.Append(i.ToString());
    sb.Append(" ");
  }
  endTime=DateTime.Now;
  span=new TimeSpan(endTime.Ticks-startTime.Ticks);
  Response.Write("<hr>Time Using StringBuilder: " + span.TotalSeconds.ToString() + "<hr>");
}
</script>


DateTime.Now.ToShortDateString()

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
   protected void Page_Load(object sender, EventArgs e)
   {
      labDate.Text = DateTime.Now.ToShortDateString();
   }
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Hello World Inline</title>
</head>
<body>
    <form id="form1" runat="server">
    <h1>Hello World</h1>
    The date is <em><asp:Label ID="labDate" runat="server"></asp:Label></em>
    </form>
</body>
</html>


Format DateTime

<%@ Page %>
<script language="C#" runat="server">
  private void Page_Load(object sender, System.EventArgs e)
  {
    Label1.Text=DateTime.Now.ToString("hh:mm:ss");
    System.Threading.Thread.Sleep(5000);
    Label2.Text=DateTime.Now.ToString("hh:mm:ss");
  }
</script>
<html>
  <body>
    <form id="form1" method="post" runat="server">
      <asp:Label ID="Label1" Runat="server" /><br>
      <asp:Label ID="Label2" Runat="server" />
    </form>
  </body>
</html>


Format DateTime variable (C#)

<%@ Page %>
<script language="C#" runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
  Response.Write("Default: " + System.DateTime.Now + "<br>");
  Response.Write("Local Time: " + System.DateTime.Now.ToLocalTime() + "<br>");
  Response.Write("Long Date: " + System.DateTime.Now.ToLongDateString() + "<br>");
  Response.Write("Long Time: " + System.DateTime.Now.ToLongTimeString() + "<br>");
  Response.Write("Short Date: " + System.DateTime.Now.ToShortDateString() + "<br>");
  Response.Write("Short Time: " + System.DateTime.Now.ToShortTimeString() + "<br>");
  Response.Write("ToString Default: " + System.DateTime.Now.ToString() + "<br>");
  Response.Write("Universal Time: " + System.DateTime.Now.ToUniversalTime() + "<br>"); // returns a datetime, which can still be formatted
  
  Response.Write("d - Short Date: " + System.DateTime.Now.ToString("d") + "<br>");
  Response.Write("D - Long Date: " + System.DateTime.Now.ToString("D") + "<br>");
  Response.Write("t - Short Time: " + System.DateTime.Now.ToString("t") + "<br>");
  Response.Write("T - Long Time: " + System.DateTime.Now.ToString("T") + "<br>");
  Response.Write("f - Full date/time (short time): " + System.DateTime.Now.ToString("f") + "<br>");
  Response.Write("F - Full date/time (long time): " + System.DateTime.Now.ToString("F") + "<br>");
  Response.Write("g - General: " + System.DateTime.Now.ToString("g") + "<br>");
  Response.Write("G - General: " + System.DateTime.Now.ToString("G") + "<br>");
  Response.Write("M/m - Month day: " + System.DateTime.Now.ToString("M") + "<br>");
  Response.Write("u - Universal Sortable: " + System.DateTime.Now.ToString("u") + "<br>");
  Response.Write("Y/y - Year month: " + System.DateTime.Now.ToString("y") + "<br>");
  Response.Write("d, day of month: " + System.DateTime.Now.ToString(" d") + "<br>"); // can"t use just "d"
  Response.Write("dd, zero-padded day of month: " + System.DateTime.Now.ToString("dd") + "<br>");
  Response.Write("ddd, abbreviated day of week: " + System.DateTime.Now.ToString("ddd") + "<br>");
  Response.Write("dddd, full day of week: " + System.DateTime.Now.ToString("dddd") + "<br>");
  Response.Write("h, hour: " + System.DateTime.Now.ToString(" h") + "<br>"); // can"t use just "h"
  Response.Write("hh, hour, zero padded " + System.DateTime.Now.ToString("hh") + "<br>");
  Response.Write("H, hour, 24-hr " + System.DateTime.Now.ToString(" H") + "<br>"); // can"t use just "H"
  Response.Write("H, hour, 24-hr, zero padded " + System.DateTime.Now.ToString("HH") + "<br>");
  
  Response.Write("m, minute: " + System.DateTime.Now.ToString(" m") + "<br>"); // can"t use just "m"
  Response.Write("M, month: " + System.DateTime.Now.ToString(" M") + "<br>"); // can"t use just "M"
  Response.Write("MM, month, zero padded: " + System.DateTime.Now.ToString("MM") + "<br>"); 
  Response.Write("MMM, month abbreviated: " + System.DateTime.Now.ToString("MMM") + "<br>"); 
  Response.Write("MMMM, month full name: " + System.DateTime.Now.ToString("MMMM") + "<br>"); 
  
  Response.Write("y, year (omits century): " + System.DateTime.Now.ToString(" y") + "<br>"); // can"t use just "y"
  Response.Write("yy, 2-digit year, zero padded: " + System.DateTime.Now.ToString("yy") + "<br>"); 
  Response.Write("yyyy, 4-digit year, zero padded: " + System.DateTime.Now.ToString("yyyy") + "<br>"); 
}
</script>


Format DateTime variable (VB)

<%@ Page %>
<script Language="vb" runat="server">
Private Sub Page_Load(sender As Object, e As System.EventArgs)
  Response.Write("Default: " & System.DateTime.Now & "<br>")
  Response.Write("Local Time: " & System.DateTime.Now.ToLocalTime() & "<br>")
  Response.Write("Long Date: " & System.DateTime.Now.ToLongDateString() & "<br>")
  Response.Write("Long Time: " & System.DateTime.Now.ToLongTimeString() & "<br>")
  Response.Write("Short Date: " & System.DateTime.Now.ToShortDateString() & "<br>")
  Response.Write("Short Time: " & System.DateTime.Now.ToShortTimeString() & "<br>")
  Response.Write("ToString Default: " & System.DateTime.Now.ToString() & "<br>")
  Response.Write("Universal Time: " & System.DateTime.Now.ToUniversalTime() & "<br>") " returns a datetime, which can still be formatted
  
  " Using Format Strings
  Response.Write("d - Short Date: " & System.DateTime.Now.ToString("d") & "<br>")
  Response.Write("D - Long Date: " & System.DateTime.Now.ToString("D") & "<br>")
  Response.Write("t - Short Time: " & System.DateTime.Now.ToString("t") & "<br>")
  Response.Write("T - Long Time: " & System.DateTime.Now.ToString("T") & "<br>")
  Response.Write("f - Full date/time (short time): " & System.DateTime.Now.ToString("f") & "<br>")
  Response.Write("F - Full date/time (long time): " & System.DateTime.Now.ToString("F") & "<br>")
  Response.Write("g - General: " & System.DateTime.Now.ToString("g") & "<br>")
  Response.Write("G - General: " & System.DateTime.Now.ToString("G") & "<br>")
  Response.Write("M/m - Month day: " & System.DateTime.Now.ToString("M") & "<br>")
  Response.Write("u - Universal Sortable: " & System.DateTime.Now.ToString("u") & "<br>")
  Response.Write("Y/y - Year month: " & System.DateTime.Now.ToString("y") & "<br>")
  " Custom Format Strings
  Response.Write("d, day of month: " & System.DateTime.Now.ToString(" d") & "<br>") " can"t use just "d"
  Response.Write("dd, zero-padded day of month: " & System.DateTime.Now.ToString("dd") & "<br>")
  Response.Write("ddd, abbreviated day of week: " & System.DateTime.Now.ToString("ddd") & "<br>")
  Response.Write("dddd, full day of week: " & System.DateTime.Now.ToString("dddd") & "<br>")
  Response.Write("h, hour: " & System.DateTime.Now.ToString(" h") & "<br>") " can"t use just "h"
  Response.Write("hh, hour, zero padded " & System.DateTime.Now.ToString("hh") & "<br>")
  Response.Write("H, hour, 24-hr " & System.DateTime.Now.ToString(" H") & "<br>") " can"t use just "H"
  Response.Write("H, hour, 24-hr, zero padded " & System.DateTime.Now.ToString("HH") & "<br>")
  
  Response.Write("m, minute: " & System.DateTime.Now.ToString(" m") & "<br>") " can"t use just "m"
  Response.Write("M, month: " & System.DateTime.Now.ToString(" M") & "<br>") " can"t use just "M"
  Response.Write("MM, month, zero padded: " & System.DateTime.Now.ToString("MM") & "<br>") 
  Response.Write("MMM, month abbreviated: " & System.DateTime.Now.ToString("MMM") & "<br>") 
  Response.Write("MMMM, month full name: " & System.DateTime.Now.ToString("MMMM") & "<br>") 
  
  Response.Write("y, year (omits century): " & System.DateTime.Now.ToString(" y") & "<br>") " can"t use just "y"
  Response.Write("yy, 2-digit year, zero padded: " & System.DateTime.Now.ToString("yy") & "<br>") 
  Response.Write("yyyy, 4-digit year, zero padded: " & System.DateTime.Now.ToString("yyyy") & "<br>") 
End Sub "Page_Load
</script>


Set the asp:Label in code behind based on current time (VB.net)

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="MyPage" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="lblMessage" runat="server"></asp:Label></div>
    </form>
</body>
</html>

File: Default.aspx.vb

Partial Class MyPage
    Inherits System.Web.UI.Page
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If DateTime.Now.Hour >= 6 And DateTime.Now.Hour < 12 Then
            lblMessage.Text = "Good morning."
        End If
        If DateTime.Now.Hour >= 12 And DateTime.Now.Hour <= 17 Then
            lblMessage.Text = "Good afternoon."
        End If
        If DateTime.Now.Hour > 17 Or DateTime.Now.Hour < 6 Then
            lblMessage.Text = "Good evening."
        End If
    End Sub
End Class


Today.Ticks

<%@ Page %>
<script language="vb" runat="server">
  Sub Page_Load(sender As Object, e As EventArgs)
    Dim ticks As Long
    ticks=DateTime.Now.Ticks-DateTime.Today.Ticks
    Dim ts As New TimeSpan(ticks)
    Hours.Text=ts.Hours.ToString()
    Minutes.Text=ts.Minutes.ToString()
    Seconds.Text=ts.Seconds.ToString()
  End Sub
</script>
<html>
  <body>
    <form id="form1" method="post" runat="server">
      Since the start of the day
      <asp:Label ID="Hours" Runat="server" />
      hours,
      <asp:Label ID="Minutes" Runat="server" />
      minutes and
      <asp:Label ID="Seconds" Runat="server" />
      seconds have passed.
    </form>
  </body>
</html>