日付と時刻に関する処理色々(その2) (23個) (SNo.080) 1.1月1日からの通算日を取得(1〜366) 2.月のデータを1月のように月を含んで取得 3.日付の文字列をDate型の値に変換する 4.文字列の時刻情報を日付型の値に変換する 5.年、月、日を表す日付型の値に変換 6.時、分、秒を表す日付型の値に変換 7.指定した日付に任意の日数を加算 8.愛子様が生まれた日からの日数を求める 9.西暦から和暦に変換 10.和暦から西暦に変換 11.処理時間を計測 |
|
使用コントロール | Button1 〜 Button10 |
その他条件 | WindowsXP(Vista) Visual Basic 2005(VB2008) |
1.1月1日からの通算日を取得(1〜366)
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click '1月1日からの通算日を取得(1〜366) 'DateTime.DayOfYear プロパティ 'このインスタンスで表される年間積算日を取得します。 Dim dt As System.DateTime = System.DateTime.Now Debug.WriteLine(dt.DayOfYear) '結果 279 '------ 名前空間 : Microsoft.VisualBasic の機能での同様の操作例 ---------- 'DatePart 関数 '特定の日付型の値の指定コンポーネントを含む整数型の値を返します。 Debug.WriteLine(DatePart(DateInterval.DayOfYear, System.DateTime.Now)) '結果 279 End Sub 日付及び時刻が初期値(未設定)の場合はLabel や TextBox 等には表示されないがDebug.WriteLine や Console.WriteLine で表示した場合は、表示される。 以下 Microsoft.VisualBasic の名前空間 を省略します。又、結果表示は、ありのままで表示します。 |
|
2.月のデータを1月のように月を含んで取得 Private Sub Button2_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button2.Click '指定した月の名前を含む文字列型の値を取得 'DateTime.Month プロパティ 'このインスタンスで表される日付の月の部分を取得します。 Dim dt As System.DateTime = System.DateTime.Now Debug.WriteLine(dt.Month.ToString("00月")) '結果 10月 '------ 名前空間 : Microsoft.VisualBasic の機能での同様の操作例 ---------- Debug.WriteLine(MonthName(Month(Now))) '結果 10月 End Sub |
|
3.日付の文字列をDate型の値に変換する Private Sub Button3_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button3.Click '日付の文字列をDate型の値に変換する 'DateTime.Parse メソッド '指定した文字列形式の日付と時刻を等価の DateTime の値に変換します。 Dim strMyDate As String = "2005年10月6日" Debug.WriteLine(System.DateTime.Parse(strMyDate)) '結果 2005/10/06 00:00:0 MessageBox.Show(System.DateTime.Parse(strMyDate)) '結果 2005/10/06 (表示結果が違う) '------ 名前空間 : Microsoft.VisualBasic の機能での同様の操作例 ---------- 'DateValue 関数 '時刻情報が午前 0 時 (00:00:00) に設定された、文字列で表される '日付情報を含む日付型の値を返します。 Debug.WriteLine(DateValue("2005年10月6日")) '結果 2005/10/06 00:00:0 MessageBox.Show(DateValue("2005年10月6日")) '結果 2005/10/06 (表示結果が違う) End Sub |
|
4.文字列の時刻情報を日付型の値に変換する Private Sub Button4_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button4.Click '文字列で表される時刻情報を含む日付型の値に変換する 'DateTime.Parse メソッド '指定した文字列形式の日付と時刻を等価の DateTime の値に変換します。 Dim strMyTime As String = "14時25分30秒" Debug.WriteLine(System.DateTime.Parse(strMyTime)) '結果 2005/10/06 14:25:30 Dim dt As System.DateTime = System.DateTime.Parse(strMyTime) Debug.WriteLine(dt.ToString("T")) '結果 14:25:30 '------ 名前空間 : Microsoft.VisualBasic の機能での同様の操作例 ---------- 'TimeValue 関数 '日付情報が 1 年 1 月 1 日に設定された、文字列で表される '時刻情報を含む日付型の値を返します。 Debug.WriteLine(TimeValue("14時25分30秒")) '結果 0001/01/01 14:25:30 End Sub |
|
5.年、月、日を表す日付型の値に変換 Private Sub Button5_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button5.Click '年、月、日を表す日付型の値に変換 'DateTime コンストラクター 'DateTime 構造体の新しいインスタンスを初期化します。 Dim myDateTime As New System.DateTime(2005, 10, 6) Debug.WriteLine(myDateTime.ToString("d")) '結果 2004/04/01 '------ 名前空間 : Microsoft.VisualBasic の機能での同様の操作例 ---------- 'DateSerial 関数 '指定の年、月、および日を表す日付型の値に変換する Debug.WriteLine(DateSerial(2005, 10, 6)) '結果 2005/10/06 00:00:00 End Sub |
|
6.時、分、秒を表す日付型の値に変換 Private Sub Button6_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button6.Click '時、分、秒を表す日付型の値に変換 'DateTime コンストラクター 'DateTime 構造体の新しいインスタンスを初期化します。 Dim dt As New System.DateTime(2005, 10, 6, 14, 25, 30) Debug.WriteLine(dt.ToString("T")) '結果 14:25:30 '------ 名前空間 : Microsoft.VisualBasic の機能での同様の操作例 ---------- 'TimeSerial 関数 '指定の時、分、および秒を表す日付型の値に変換する Debug.WriteLine(TimeSerial(14, 25, 30)) '結果 0001/01/01 14:25:30 End Sub |
|
7.指定した日付に任意の日数を加算 Private Sub Button7_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button7.Click '指定した日付に任意の日数を加算 'DateTime.AddDays メソッド 'このインスタンスの値に、指定した日数を加算します。 Dim dt As New System.DateTime(2004, 3, 1) Debug.WriteLine(dt.AddDays(-1)) '結果 2004/02/29 0:00:00 'DateTime.AddMonths メソッド 'このインスタンスの値に指定した月数を加算します。 Debug.WriteLine(dt.AddMonths(13)) '結果 2005/04/01 0:00:00 '------ 名前空間 : Microsoft.VisualBasic の機能での同様の操作例 ---------- 'DateAdd 関数 '指定した日付に任意の日数を加減算する(3月1日の1日前の日は) Debug.WriteLine(DateAdd(DateInterval.Day, -1, DateValue("2004年3月1日"))) '結果 2004/02/29 0:00:00 End Sub |
|
8.愛子様が生まれた日からの日数を求める Private Sub Button8_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button8.Click '愛子様が生まれた日からの日数を求める 'DateTime.Subtract メソッド 'このインスタンスから指定した時刻または存続時間を減算します。 Dim dt1 As System.DateTime = System.DateTime.Parse("2001/12/01") Dim dt2 As System.DateTime = System.DateTime.Now Debug.WriteLine(dt2.Subtract(dt1).Days) '結果 1405 Debug.WriteLine(dt2.Subtract(dt1).TotalHours) '結果 33730.9736328125 '------ 名前空間 : Microsoft.VisualBasic の機能での同様の操作例 ---------- 'DateDiff 関数 '2 つの日付型 (Date) 値の間の時間間隔数を指定する長整数型 (Long) の値を返します Debug.WriteLine(DateDiff(DateInterval.Day, DateValue("2001/12/1"), Now)) '結果 1405 End Sub |
|
9.西暦から和暦に変換 Private Sub Button9_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button9.Click '西暦から和暦に変換 Dim myCI As New System.Globalization.CultureInfo("ja-JP", True) myCI.DateTimeFormat.Calendar = New System.Globalization.JapaneseCalendar Dim dt As System.DateTime = CDate("2005年10月06日") Debug.WriteLine(dt.ToString("gyy年MM月dd日", myCI)) '結果 平成17年10月06日 End Sub VB6.0 で使用できた Format$(Date, "gggee年mm月dd日") '平成14年01月07日 は、.NETでは使用できません |
|
10.和暦から西暦に変換 Private Sub Button10_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button10.Click '和暦から西暦に変換 Dim dt As System.DateTime = CDate("平成17年10月06日") Debug.WriteLine(dt.ToString("yyyy年MM月dd日")) '結果 2005年10月06日 End Sub |
|
11.処理時間を計測 Private Sub Button11_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button11.Click '処理時間を計測 Dim sTime0 As DateTime = Now Dim sTime1 As Single = Environment.TickCount For i As Integer = 0 To 1000 Debug.WriteLine(i) Next i Dim eTime0 As DateTime = Now Dim eTime1 As Single = Environment.TickCount MessageBox.Show(eTime0.Subtract(sTime0).TotalSeconds & " 秒かかりました。") MessageBox.Show(((eTime1 - sTime1) / 1000) & " 秒かかりました。") 'どちらの方法も殆ど変りません。(誤差の範囲内) End Sub |
|
メニューの関数・メソッド等の中の[日付・時刻に関する関数(Microsoft.VisualBasic)の使用例] [日付・時刻に関するメソッド(DateTime 構造体)等の使用例その1] [日付・時刻に関するメソッド(DateTime 構造体)等の使用例その2] [日付・時刻に関する書式設定関係のメソッド等の使用例] もご覧下さい。 |