DateTimePickerへの和暦の表示
VB.NET2003のDateTimePickerのプロパティ等の設定だけで和暦を表示することはできません。 しかし、以下の記述を行えば、和暦を表示することができますが、DateTimePickerコントロールを開いてカレンダーを表示したときの年号は西暦となります。
また、手入力で和暦部を変更することもできません。 このことから、実際に和暦を利用するためにはカスタムユーザコントロールを自作するしかないという結論になります。
なっちゃんのプログラミングTipsより参照Private Sub frmMain_Load
(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load DateTimePicker1.Format = DateTimePickerFormat.Custom DateTimePicker1.Value = Today DateTimePicker1.CustomFormat = FormatJPCalendar(DateTimePicker1.Value) End Sub Public Function FormatJPCalendar
(ByVal tday As DateTime) As String Dim cal As JapaneseCalendar = New JapaneseCalendar Dim era As Integer = cal.GetEra(tday) Dim nengo() As String = {“明治”, “大正”, “昭和”, “平成”} Select Case era
Case 1 To 4 Return String.Format(“{0}{1:00}年MM月dd日”, nengo(era – 1), cal.GetYear(tday)) Case Else Return “yyyy/MM/dd” End Select End Function Private Sub DateTimePicker1_ValueChanged
(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateTimePicker1.ValueChanged DateTimePicker1.CustomFormat = FormatJPCalendar(DateTimePicker1.Value) End Sub Private Sub DateTimePicker1_VisibleChanged
(ByVal sender As Object, ByVal e As System.EventArgs) Handles DateTimePicker1.VisibleChanged DateTimePicker1.CustomFormat = FormatJPCalendar(DateTimePicker1.Value) End Sub