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

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

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

[Visual Basic]
Imports GrapeCity.Win.Editor

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

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

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

    ' 固定の祝日を設定します。 
    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#]
using GrapeCity.Win.Editors;

// 休日スタイルを定義します。
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年以降に「山の日」が追加された祝日定義ファイルは製品に同梱されています。