日付や時刻などに関するDateTimeクラス
システム日付(現在日付)の取得や、二つの日付・時間の間隔を計算したりと、DateTimeクラスには色々なメソッドが用意されています。
現在の日時を取得する方法
宣言後の最初の代入にNowプロパティを使用すると、現在の時間を取得する事ができます。
使い方の例
'宣言と格納 Dim dt As DateTime = DateTime.Now '現在の日付を「YYYY年MM月DD日」形式で表示 LabelDay.Text = dt.ToLongDateString '現在の時刻を「h:m:s」形式で表示 LabelTime.Text = dt.ToLongTimeString
年・月・日(時・分・秒)を別々に取得する方法
「年・月・日」や「時・分・秒」を別々に取得するにはそれぞれのプロパティを利用します。ただし、格納されているのはInteger型なので、明示的な変換をする場合はToStringメソッドを使用します。
使い方の例
Dim dt As DateTime = DateTime.Now '年を表示 Label1.Text = dt.Year.ToString '月を表示 Label2.Text = dt.Month.ToString '日を表示 Label3.Text = dt.Day.ToString '時を表示 Label4.Text = dt.Hour.ToString '分を表示 Label5.Text = dt.Minute.ToString '秒を表示 Label6.Text = dt.Second.ToString
曜日を取得する方法
DayOfWeekプロパティには、曜日に対応した 0〜6 の番号が格納されています。また、それに対応した定数も用意されています。
0:日曜日、1:月曜日、2:火曜日、3:水曜日、
4:木曜日、5:金曜日、6:土曜日
4:木曜日、5:金曜日、6:土曜日
使い方の例
Dim dt As DateTime = DateTime.Now '曜日を文字列で格納する変数 Dim sYobi As String '対応する定数と比較して、文字列を格納 Select Case dt.DayOfWeek Case DayOfWeek.Sunday sYobi = "日曜日" Case DayOfWeek.Monday sYobi = "月曜日" Case DayOfWeek.Tuesday sYobi = "火曜日" Case DayOfWeek.Wednesday sYobi = "水曜日" Case DayOfWeek.Thursday sYobi = "木曜日" Case DayOfWeek.Friday sYobi = "金曜日" Case DayOfWeek.Saturday sYobi = "土曜日" End Select
任意の日時でDateTimeを生成する方法
現在の日時(システム日付)でなく、任意の日時のDateTimeオブジェクトを生成するには、コンストラクタの引数を指定します。
引数3つで「年月日」のみを指定すると、時間は午前0時ちょうどになります。
使い方の例
'引数3つで「年月日」を指定 Dim dt1 As New DateTime(2020, 1, 23) '引数6つで「年月日時分秒」を指定 Dim dt2 As New DateTime(2020, 3, 31, 8, 15, 0)
2つの日時の間隔を計算する方法
DateTimeクラスのSubtract()メソッドを使えば、二つの日時の間隔を計算する事ができます。
戻り値をTimeSpan型で受け取り、使用したいプロパティを参照します。
使い方の例
'二つのDateTimeクラスを生成 Dim dt1 As New DateTime(2020, 1, 23) Dim dt2 As New DateTime(2020, 3, 31) '間隔を計算 Dim ts As TimeSpan ts = dt2.Subtract(dt1) 'Daysプロパティで「日」の間隔を参照 Label1.Text = ts.Days
TimeSpanクラスの色々なプロパティ
Days … 日数
Hours … 時間
Minutes … 分
Seconds … 秒
Milliseconds … ミリ秒
Hours … 時間
Minutes … 分
Seconds … 秒
Milliseconds … ミリ秒
さいごに
DateTimeクラスは日時を扱う場合に、頻繁に使用することのあるクラスです。
使用する方法はそれほど難しくはないので、この記事ページを参考に色々と試してみてください。