VB.Net Tutorial/Date Time/Date

Материал из VB Эксперт
Перейти к: навигация, поиск

Add 3 years to a date

<source lang="vbnet">public class Test

  public Shared Sub Main
       Dim Expiration As Date
       Dim NewExpiration As Date
       Expiration = #1/1/2005#
       Expiration.AddYears(3)
       NewExpiration = Expiration.AddYears(3)
       Console.WriteLine("The new expiration date is: " & NewExpiration)
  End Sub

End class</source>

The new expiration date is: 01/01/2008

Add Time to current time

<source lang="vbnet">Public Class Tester

   Public Shared Sub Main
       
       Dim rightNow As Date = Now
       Console.WriteLine("RightNow: " & rightNow.ToString)
       " ----- Add time values.
       Console.WriteLine("RightNow.AddHours(5): " & rightNow.AddHours(5))
       Console.WriteLine("RightNow.AddMinutes(6): " & rightNow.AddMinutes(6))
       Console.WriteLine("RightNow.AddSeconds(7): " & rightNow.AddSeconds(7))
       Console.WriteLine("RightNow.AddMilliseconds(8000): " & rightNow.AddMilliseconds(8000))
   End Sub

End Class</source>

RightNow: 11/05/2007 9:09:20 PM
RightNow.AddHours(5): 12/05/2007 2:09:20 AM
RightNow.AddMinutes(6): 11/05/2007 9:15:20 PM
RightNow.AddSeconds(7): 11/05/2007 9:09:27 PM
RightNow.AddMilliseconds(8000): 11/05/2007 9:09:28 PM

Compare Date value in If statement

<source lang="vbnet">Module Module1

   Sub Main()
       If (Now.Hour < 12) Then
           Console.WriteLine("Good morning")
       ElseIf (Now.Hour < 18) Then
           Console.WriteLine("Good day")
       Else
           Console.WriteLine("Good evening")
       End If
   End Sub

End Module</source>

Good evening

Date AddYears, AddMonths and AddDays

<source lang="vbnet">Public Class Tester

   Public Shared Sub Main
       
       Dim rightNow As Date = Now
       Console.WriteLine("RightNow: " & rightNow.ToString)
       Console.WriteLine("RightNow.AddYears(2): " & rightNow.AddYears(2))
       Console.WriteLine("RightNow.AddMonths(3): " & rightNow.AddMonths(3))
       Console.WriteLine("RightNow.AddDays(4): " & rightNow.AddDays(4))
   End Sub

End Class</source>

RightNow: 11/05/2007 9:09:20 PM
RightNow.AddYears(2): 11/05/2009 9:09:20 PM
RightNow.AddMonths(3): 11/08/2007 9:09:20 PM
RightNow.AddDays(4): 15/05/2007 9:09:20 PM

Date and TimeSpan

<source lang="vbnet">public class Test

  public Shared Sub Main
       Dim date1 As Date = #7/20/2004#
       Dim date2 As Date = #8/7/2004#
       Dim elapsed_time As TimeSpan
       elapsed_time = Date.op_Subtraction(date2, date1)
       Console.WriteLine(elapsed_time.Days.ToString)
  End Sub

End class</source>

18

Date.ToOADate

<source lang="vbnet">public class Test

  public Shared Sub Main
       Dim D As Date = Now()
       Dim F As Double = D.ToOADate()
       Console.WriteLine(F)
  End Sub

End class</source>

39213.5204361921

Date ToString, ToLongDateString, ToShortDateString, ToLongTimeString, ToShortTimeString and ToUniversalTime

<source lang="vbnet">Public Class Tester

   Public Shared Sub Main
       Dim rightNow As Date = Now
       Dim result As New System.Text.StringBuilder
       result.AppendLine("""Now""...")
       result.Append("ToString: ").AppendLine(rightNow.ToString)
       result.Append("ToLongDateString: ")
       result.AppendLine(rightNow.ToLongDateString)
       result.Append("ToShortDateString: ")
       result.AppendLine(rightNow.ToShortDateString)
       result.Append("ToLongTimeString: ")
       result.AppendLine(rightNow.ToLongTimeString)
       result.Append("ToShortTimeString: ")
       result.AppendLine(rightNow.ToShortTimeString)
       result.Append("ToUniversalTime: ")
       result.AppendLine(rightNow.ToUniversalTime)
       result.AppendLine()
       Console.WriteLine(result.ToString)
   End Sub

End Class</source>

Now"...
ToString: 11/05/2007 9:09:26 PM
ToLongDateString: May 11, 2007
ToShortDateString: 11/05/2007
ToLongTimeString: 9:09:26 PM
ToShortTimeString: 9:09 PM
ToUniversalTime: 12/05/2007 4:09:26 AM

dateVariable = #4#

<source lang="vbnet">public class Test

  public Shared Sub Main
       Dim dteExpiration As Date
       dteExpiration = #1/1/2004#
       Console.WriteLine(dteExpiration)
  End Sub

End class</source>

01/01/2004 12:00:00 AM

dateVariable = #PM#

<source lang="vbnet">public class Test

  public Shared Sub Main
       Dim dteExpiration As Date
       dteExpiration = #8/27/2001 6:29:11 PM#
       Console.WriteLine(dteExpiration)
  End Sub

End class</source>

27/08/2001 6:29:11 PM

dateVariable = "July 2, 2002"

<source lang="vbnet">public class Test

  public Shared Sub Main
       Dim dteExpiration As Date
       dteExpiration = "July 2, 2002"
       Console.WriteLine(dteExpiration)
  End Sub

End class</source>

02/07/2002 12:00:00 AM

Dim fourthOfJuly As New Date( 4)

<source lang="vbnet">Public Class Tester

   Public Shared Sub Main
       Dim thirdOfJuly As Date = #7/3/1776 11:59:59 PM#
       Dim fourthOfJuly As New Date(1776, 7, 4)
       Dim inTheMorning As New Date(1776, 7, 4, 9, 45, 30)
       Console.WriteLine( _
          "The 3rd and 4th of July, 1776..." & _
          vbNewLine & vbNewLine & _
          "#7/3/1776 11:59:59 PM# ... " & _
          thirdOfJuly.ToString & vbNewLine & _
          "New Date(1776, 7, 4) ... " & _
          fourthOfJuly.ToString & vbNewLine & _
          "New Date(1776, 7, 4, 9, 45, 30) ... " & _
          inTheMorning.ToString)
   End Sub

End Class</source>

The 3rd and 4th of July, 1776...
#7/3/1776 11:59:59 PM# ... 03/07/1776 11:59:59 PM
New Date(1776, 7, 4) ... 04/07/1776 12:00:00 AM
New Date(1776, 7, 4, 9, 45, 30) ... 04/07/1776 9:45:30 AM

Dim inTheMorning As New Date( 30)

<source lang="vbnet">Public Class Tester

   Public Shared Sub Main
       Dim thirdOfJuly As Date = #7/3/1776 11:59:59 PM#
       Dim fourthOfJuly As New Date(1776, 7, 4)
       Dim inTheMorning As New Date(1776, 7, 4, 9, 45, 30)
       Console.WriteLine( _
          "The 3rd and 4th of July, 1776..." & _
          vbNewLine & vbNewLine & _
          "#7/3/1776 11:59:59 PM# ... " & _
          thirdOfJuly.ToString & vbNewLine & _
          "New Date(1776, 7, 4) ... " & _
          fourthOfJuly.ToString & vbNewLine & _
          "New Date(1776, 7, 4, 9, 45, 30) ... " & _
          inTheMorning.ToString)
   End Sub

End Class</source>

The 3rd and 4th of July, 1776...
#7/3/1776 11:59:59 PM# ... 03/07/1776 11:59:59 PM
New Date(1776, 7, 4) ... 04/07/1776 12:00:00 AM
New Date(1776, 7, 4, 9, 45, 30) ... 04/07/1776 9:45:30 AM

Dim thirdOfJuly As Date = #PM#

<source lang="vbnet">Public Class Tester

   Public Shared Sub Main
       Dim thirdOfJuly As Date = #7/3/1776 11:59:59 PM#
       Dim fourthOfJuly As New Date(1776, 7, 4)
       Dim inTheMorning As New Date(1776, 7, 4, 9, 45, 30)
       Console.WriteLine( _
          "The 3rd and 4th of July, 1776..." & _
          vbNewLine & vbNewLine & _
          "#7/3/1776 11:59:59 PM# ... " & _
          thirdOfJuly.ToString & vbNewLine & _
          "New Date(1776, 7, 4) ... " & _
          fourthOfJuly.ToString & vbNewLine & _
          "New Date(1776, 7, 4, 9, 45, 30) ... " & _
          inTheMorning.ToString)
   End Sub

End Class</source>

The 3rd and 4th of July, 1776...
#7/3/1776 11:59:59 PM# ... 03/07/1776 11:59:59 PM
New Date(1776, 7, 4) ... 04/07/1776 12:00:00 AM
New Date(1776, 7, 4, 9, 45, 30) ... 04/07/1776 9:45:30 AM

Elapsed Ticks

<source lang="vbnet">Public Class Tester

   Public Shared Sub Main
       Dim ticksBefore As Long
       Dim ticksAfter As Long
       Dim tickSeconds As Double
       ticksBefore = Now.Ticks
       MsgBox("Press OK to see elapsed seconds")
       ticksAfter = Now.Ticks
       tickSeconds = (ticksAfter - ticksBefore) / 10000000.0
       Console.WriteLine("Elapsed seconds: " & tickSeconds.ToString())
   End Sub

End Class</source>

Elapsed seconds: 0.6875

Get Ticks from DateTime

<source lang="vbnet">public class Test

  public Shared Sub Main
   Console.WriteLine("Ticks since 12:00AM January 1, 1 CE="+ Now().Ticks().ToString())
  End Sub

End class</source>

Ticks since 12:00AM January 1, 1 CE=633144834075000000

Moon Phase

<source lang="vbnet">Public Class Tester

   Public Shared Sub Main
       Dim phaseDay As Double
       Dim result As String
       phaseDay = MoonPhase(Now.ToUniversalTime)
       result = "UTC is now: " & _
          Now.ToUniversalTime.ToString("u") & vbNewLine & vbNewLine
       If (phaseDay < 0) Then
           result &= "Approx days until new moon: " & _
              (-phaseDay).ToString("F1")
       Else
           result &= "Approx days since new moon: " & _
              phaseDay.ToString("F1")
       End If
       Console.WriteLine(result)
   End Sub
   Public Shared Function MoonPhase(ByVal dateUtc As Date) As Double
       Dim days As Double = dateUtc.Subtract(#1/1/1600#).TotalDays
       Dim cycles As Double = days * 0.03386319 - 12.5
       Return Math.IEEERemainder(cycles, 1.0) * 29.53059
   End Function

End Class</source>

UTC is now: 2007-05-12 04:09:30Z
Approx days until new moon: 4.7

Parse Date: Test an invalid date

<source lang="vbnet">Public Class Tester

   Public Shared Sub Main
       Dim testDate As String
       Dim results As New System.Text.StringBuilder
       " ----- Test an invalid date.
       testDate = "Febtember 43, 2007"
       If (IsDate(testDate) = True) Then _
          results.AppendLine(Date.Parse(testDate).ToString)
       Console.WriteLine(results.ToString())
   End Sub

End Class</source>

Select Day Of Week

<source lang="vbnet">Module Module1

   Sub Main()
       Dim DayOfWeek As Integer
       DayOfWeek = Now.DayOfWeek
       Select Case DayOfWeek
           Case 1
               Console.WriteLine("Sunday")
           Case 2
               Console.WriteLine("Monday")
           Case 3
               Console.WriteLine("Tuesday")
           Case 4
               Console.WriteLine("Wednesday")
           Case 5
               Console.WriteLine("Thursday")
           Case 6
               Console.WriteLine("Friday")
           Case 7
               Console.WriteLine("Saturday")
       End Select
   End Sub

End Module</source>

Thursday

Subtract Time

<source lang="vbnet">Public Class Tester

   Public Shared Sub Main
       Dim results As New System.Text.StringBuilder
       Dim rightNow As Date = Now
       results.AppendLine("RightNow: " & rightNow.ToString)
       results.AppendLine()
       results.AppendLine("One year ago: " & _
          rightNow.AddYears(-1).ToString)
       results.AppendLine("365.25 days ago: " & _
          rightNow.AddDays(-365.25).ToString)
       Console.WriteLine(results.ToString())
   End Sub

End Class</source>

RightNow: 11/05/2007 9:09:36 PM
One year ago: 11/05/2006 9:09:36 PM
365.25 days ago: 11/05/2006 3:09:36 PM

System Time

<source lang="vbnet">Public Class Tester

   Public Shared Sub Main
       Dim rightNow As Date = Now
       Dim result As New System.Text.StringBuilder
       result.AppendLine("""Now""...")
       result.AppendLine()
       result.Append("Date: ").AppendLine(rightNow.ToShortDateString)
       result.Append("Time: ").AppendLine(rightNow.ToShortTimeString)
       result.Append("Ticks: ").Append(rightNow.Ticks.ToString)
       Console.WriteLine(result.ToString())
   End Sub

End Class</source>

Now"...
Date: 11/05/2007
Time: 9:09 PM
Ticks: 633145145771093750

ToLongDateString

<source lang="vbnet">public class Test

  public Shared Sub Main
       Dim theDate As Date
       theDate = #2/13/1975 3:00:00 AM#
       Console.WriteLine(theDate.ToLongDateString)
  End Sub

End class</source>

February 13, 1975

ToLongTimeString

<source lang="vbnet">public class Test

  public Shared Sub Main
       Dim theDate As Date
       theDate = #2/13/1975 3:00:00 AM#
       Console.WriteLine(theDate.ToLongTimeString)
  End Sub

End class</source>

3:00:00 AM