覚えたことを復唱してみる。 だって、忘れっぽいんですもの。

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