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

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

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

[Visual Basic]
Imports GrapeCity.Win.Calendar

' 休日スタイルを定義します。
Dim nationalHoliday As HolidayStyle = New HolidayStyle()

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

  ' イベントプロシージャに関連づけます。
  AddHandler GcCalendar1.Scrolled, AddressOf GcCalendar1_Scrolled

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

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

Private Sub GcCalendar1_Scrolled(ByVal sender As Object, ByVal e As ScrolledEventArgs) Handles GcCalendar1.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#]
using GrapeCity.Win.Calendar;

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

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

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

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

private void gcCalendar1_Scrolled(object sender, ScrolledEventArgs e)
{
  int currentYear = e.StartDate.Year;

  // 2016年以降、山の日を設定します。
  if (currentYear > 2015)
  {
    nationalHoliday.Holidays.Add(new ForceHoliday("山の日", DateTime.Parse(currentYear.ToString() + "/08/11")));
  }
}

なお、2016年以降に「山の日」が追加された祝日定義ファイルは製品に同梱されています。