祝日設定に「山の日」を追加したい

文書番号 : 37347     文書種別 : 使用方法     登録日 : 2014/05/28     最終更新日 : 2014/05/28
文書を印刷する
対象製品
InputMan for Windows Forms 7.0J
詳細
2016年から、8月11日に「山の日」が国民の祝日として施行されます。
日付時刻および日付コントロールのドロップダウンカレンダーの休日設定に2016年以降の8月11日を追加するには、ForceHolidayオブジェクトを使用して、特定の年にだけ適用される休日を生成します。これは、年によって変化する春分の日、秋分の日の設定と同様の方法です。

以下のサンプルコードでは、ドロップダウンカレンダーのScrollイベントで、表示されている年により「山の日」を祝日として追加する例です。

[Visual Basic]
' イベントを使用するクラスのインスタンスを設定します。
Friend WithEvents MyCalendar As GrapeCity.Win.Editors.DropDownCalendar
' 休日スタイルを定義します。
Dim nationalHoliday As HolidayStyle = New HolidayStyle()

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  ' 固定の祝日を設定します。
  nationalHoliday.Name = "国民の祝日"
  nationalHoliday.SubStyle = New SubStyle(Color.Pink, Color.White)

  ' 休日スタイルをコレクションに追加してカレンダーに反映させます。
  GcDateTime1.DropDownCalendar.HolidayStyles.Add("国民の祝日", nationalHoliday)
  GcDateTime1.DropDownCalendar.ActiveHolidayStyles = New String() {"国民の祝日"}
End Sub

Private Sub DropDownCalendar_Scrolled(ByVal sender As Object, ByVal e As GrapeCity.Win.Editors.ScrolledEventArgs) Handles GcDateTime1.DropDownCalendar.Scrolled
  Dim currentYear As Integer = e.StartDate.Year

  ' 2016年以降、山の日を設定します。
  If currentYear > 2015 Then
    nationalHoliday.Holidays.Add(New ForceHoliday("山の日", DateTime.Parse(currentYear.ToString() + "/08/11")))
  End If
End Sub

[C#]
// 休日スタイルを定義します。
HolidayStyle nationalHoliday = new HolidayStyle();

private void Form1_Load(object sender, EventArgs e)
{
  // イベントプロシージャに関連づけます。
  gcDateTime1.DropDownCalendar.Scrolled += DropDownCalendar_Scrolled;

  // 固定の祝日を設定します。
  nationalHoliday.Name = "国民の祝日";
  nationalHoliday.SubStyle = new SubStyle(Color.Pink, Color.White);

  // 休日スタイルをコレクションに追加してカレンダーに反映させます。
  gcDateTime1.DropDownCalendar.HolidayStyles.Add("国民の祝日", nationalHoliday);
  gcDateTime1.DropDownCalendar.ActiveHolidayStyles = new String[] {"国民の祝日"};
}

private void DropDownCalendar_Scrolled(object sender, GrapeCity.Win.Editors.ScrolledEventArgs e)
{
  int currentYear = e.StartDate.Year;
  
  // 2016年以降、山の日を設定します。
  if(currentYear > 2015)
  {
    nationalHoliday.Holidays.Add(new ForceHoliday("山の日", DateTime.Parse(currentYear.ToString() + "/08/11")));
  }
}

なお、2016年以降に「山の日」が追加された祝日定義ファイルは以下からダウンロードできます。
Holiday.xml
Holiday_振替休日あり.xml
※最新のService Pack 2(v7.0.2013.1127)に同梱されているHoliday.xmlに「山の日」は定義されていません。

関連情報