データ型の中で 日付型(Date) はよく使用するもののひとつです。 VB.NETの中に日付のデータ型として、 Date と DateTime がありますが、 どの様な違いがあるのか疑問に思われるでしょうが、以下のMSDNの説明によれば同じものの様です。
⇒データ型の概要 (Visual Basic)
日付型として同じであれば、どちらを使ってもよいのですが、プログラムの中では一つに統一した方が良いと思います。 (私としては DateTime で良いと思います)
以下のソースは抜粋ですが、どちらも同じことをを処理しています。
日付型データの使い方1
Dim strWK As String = "" Dim dateWK As Date 'Date型 dateWK = New Date(2018, 1, 20, 15, 17, 30) strWK = dateWK.ToString("yyyy/MM/dd HH:mm:ss") '日付型を書式で変換 Console.WriteLine("dateWK.ToString(""yyyy/MM/dd HH:mm:ss"") = " & strWK) 'DateTime型 Dim dateTimeWK As DateTime dateTimeWK = New DateTime(2018, 1, 20, 15, 17, 30) strWK = dateTimeWK.ToString("yyyy/MM/dd HH:mm:ss") Console.WriteLine("dateTimeWK.ToString(""yyyy/MM/dd HH:mm:ss"") = " & strWK)
ソースの中で、ToString を使用して日付型データから書式に従って文字列に変換しています。 今回の例では書式を"yyyy/MM/dd HH:mm:ss"を使っていますが、通常はこの様な感じで十分かと思います。
尚、この書式には各種ありますが代表的なものを以下に示します。
書式指定子 | 説明 | 使用例 |
---|---|---|
yy | 0埋め下2桁の年 (00 ~ 99) | 2009-06-01 13:45:30 ⇒ "09" |
yyyy | 0埋め4桁の年 (0001 ~ 9999) | 2009-06-01 13:45:30 ⇒ "2009" |
M | 月 (1 ~ 12) | 2009-06-01 13:45:30 ⇒ "6" |
MM | 月:1桁の場合先頭0付 (01 ~ 12) | 2009-06-01 13:45:30 ⇒ "06" |
d | 月の日にち (1 ~ 31) | 2009-06-01 13:45:30 ⇒ "1" |
dd | 月の日にち:1桁の場合先頭0付 (01 ~ 31) | 2009-06-01 13:45:30 ⇒ "01" |
h | 12時間形式の時間 (1 ~ 12) | 2009-06-01 13:45:30 ⇒ "1" |
hh | 12時間形式の時間:1桁の場合先頭0付 (01 ~ 12) | 2009-06-01 13:45:30 ⇒ "1" |
H | 24時間形式の時間 (0 ~ 23) | 2009-06-01 03:45:30 ⇒ "3" |
HH | 24時間形式の時間:1桁の場合先頭0付 (00 ~ 23) | 2009-06-01 13:45:30 ⇒ "13" |
mm | 分:1桁の場合先頭0付 (00 ~ 59) | 2009-06-01 13:05:30 ⇒ "05" |
ss | 秒:1桁の場合先頭0付 (00 ~ 59) | 2009-06-01 13:05:04 ⇒ "04" |
ddd | 曜日の省略名 | 2009-06-01 13:45:30 ⇒ "月" |
dddd | 曜日の完全名 | 2009-06-01 13:45:30 ⇒ "月曜日" |
次に日付型の計算について説明します。 いろんなところで日付に対して翌日、前日、前月、翌月、前年、翌年などの計算が必要になりますが、 日付型のメソッドとしてそれらを計算できるものが揃っています。 私がよく使うものを以下に示します。
メソッド | 書式 | 説明 |
---|---|---|
AddDays | AddDays (value As Double) As DateTime value 引数は、正または負のどちらの場合もあります |
指定された日数を加算した新しい DateTime を返します |
AddMonths | AddMonths (value As Integer) As DateTime value 引数は、正または負のどちらの場合もあります |
指定された月数を加算した新しい DateTime を返します |
AddYears | AddYears (value As Integer) As DateTime value 引数は、正または負のどちらの場合もあります |
指定された年数を加算した新しい DateTime を返します |
日付型データの使い方2
'日付の設定 dateTimeWK = New DateTime(2018, 1, 25) '日数+1 dateTimeWK = dateTimeWK.AddDays(1) Console.WriteLine("日数+1 = " & dateTimeWK.ToString("yyyy/MM/dd HH:mm:ss")) '日数-1 dateTimeWK = dateTimeWK.AddDays(-1) Console.WriteLine("日数-1 = " & dateTimeWK.ToString("yyyy/MM/dd HH:mm:ss")) '月数+1 dateTimeWK = dateTimeWK.AddMonths(1) Console.WriteLine("月数+1 = " & dateTimeWK.ToString("yyyy/MM/dd HH:mm:ss")) '月数-1 dateTimeWK = dateTimeWK.AddMonths(-1) Console.WriteLine("月数-1 = " & dateTimeWK.ToString("yyyy/MM/dd HH:mm:ss")) '年数+1 dateTimeWK = dateTimeWK.AddYears(1) Console.WriteLine("年数+1 = " & dateTimeWK.ToString("yyyy/MM/dd HH:mm:ss")) '年数-1 dateTimeWK = dateTimeWK.AddYears(-1) Console.WriteLine("年数-1 = " & dateTimeWK.ToString("yyyy/MM/dd HH:mm:ss"))
上記の処理を実行すると以下の様な表示が、「出力」ウインドウに表示されます。
dateWK.ToString("yyyy/MM/dd HH:mm:ss") = 2018/01/20 15:17:30 dateTimeWK.ToString("yyyy/MM/dd HH:mm:ss") = 2018/01/20 15:17:30 日数+1 = 2018/01/26 00:00:00 日数-1 = 2018/01/25 00:00:00 月数+1 = 2018/02/25 00:00:00 月数-1 = 2018/01/25 00:00:00 年数+1 = 2019/01/25 00:00:00 年数-1 = 2018/01/25 00:00:00
関連する記事
⇒日付型データの使い方(月末、年末の日付取得)⇒日付型データの比較について
⇒文字列から数値型への変換(parse - tryparse)
⇒オブジェクト型から数値型への変換(TryParse)
PR
コメント