ドロップダウンカレンダーに月曜以外の振替休日を設定するには?
対象製品
InputMan for Windows Forms 7.0J
詳細
通常、日曜日が国民の祝日と重なった場合は、翌日の月曜日が振替休日となります。
しかし、ゴールデンウィークなど祝日が連続すると翌日の月曜日も祝日である場合があります。
たとえば、2014年は、5月4日のみどりの日が日曜日ですが、翌日の5日月曜日もこどもの日です。したがって、みどりの日の振替休日は翌々日の5月6日火曜日となります。
日付時刻および日付コントロールのドロップダウンカレンダーで、このような月曜以外の振替休日を設定するには、以下の方法があります。
■「翌営業日」を振替休日に設定する
振替休日の設定は、HolidayCollectionのWeekdaysプロパティを経由してDayOfWeekHolidayPolicyオブジェクトを使用しますが、DayOfWeekHolidayPolicyクラスのOverrideプロパティをNextWorkdayに設定すると振替休日を「翌日」ではなく「翌営業日」(次の祝日ではない日)と設定できます。デフォルトはNextDay(翌日)です。
次のサンプルコードは、日付コントロールのドロップダウンカレンダーに"NationalHoliday"というキーで登録されている休日スタイルの振替休日を「翌営業日」に変更する例です。
[Visual Basic]
Imports GrapeCity.Win.Editors
' 休日スタイルを取得します。
Dim nationalHoliday As HolidayStyle = GcDate1.DropDownCalendar.HolidayStyles("NationalHoliday")
' 振替休日を翌営業日に設定します。
nationalHoliday.Holidays.Weekdays.Sunday = New DayOfWeekHolidayPolicy(WeekFlags.All, HolidayOverride.NextWorkDay)
[C#]
using GrapeCity.Win.Editors;
HolidayStyle nationalHoliday = GcDate1.DropDownCalendar.HolidayStyles["NationalHoliday"];
// 振替休日を翌営業日に設定します。
nationalHoliday.Holidays.Weekdays.Sunday = new DayOfWeekHolidayPolicy(WeekFlags.All, HolidayOverride.NextWorkday);
祝日設定の詳細や具体的なサンプルコードについては製品ヘルプの下記の項を参照してください。
[PowerTools InputMan for Windows Forms 7.0J]
- [InputManの使い方]
- [日付時刻コントロール]
- [ドロップダウンカレンダー]
- [休日を設定する]
■振替休日を休日として追加する
2014年5月6日などの月曜以外の振替休日を「振替休日」という名称の休日として追加します。
このとき、DayOfWeekHolidayPolicyクラスのOverrideプロパティはデフォルトのNextDay(翌日)のままにする必要があります。
製品に同梱される祝日定義ファイル(Holiday.xml)には月曜以外の振替休日は含まれていません。月曜以外の振替休日を休日として追加されている最新の定義ファイル「Holiday_振替休日あり.xml」はこちらからダウンロードできます。
※最新の祝日定義ファイルは新しい祝日である「山の日」に対応しています。
祝日定義ファイルのインポートについては、製品ヘルプの下記の項を参照してください。
[PowerTools InputMan for Windows Forms 7.0J]
- [InputManの使い方]
- [日付時刻コントロール]
- [祝日定義ファイルのインポート/エクスポート]
しかし、ゴールデンウィークなど祝日が連続すると翌日の月曜日も祝日である場合があります。
たとえば、2014年は、5月4日のみどりの日が日曜日ですが、翌日の5日月曜日もこどもの日です。したがって、みどりの日の振替休日は翌々日の5月6日火曜日となります。
日付時刻および日付コントロールのドロップダウンカレンダーで、このような月曜以外の振替休日を設定するには、以下の方法があります。
■「翌営業日」を振替休日に設定する
振替休日の設定は、HolidayCollectionのWeekdaysプロパティを経由してDayOfWeekHolidayPolicyオブジェクトを使用しますが、DayOfWeekHolidayPolicyクラスのOverrideプロパティをNextWorkdayに設定すると振替休日を「翌日」ではなく「翌営業日」(次の祝日ではない日)と設定できます。デフォルトはNextDay(翌日)です。
次のサンプルコードは、日付コントロールのドロップダウンカレンダーに"NationalHoliday"というキーで登録されている休日スタイルの振替休日を「翌営業日」に変更する例です。
[Visual Basic]
Imports GrapeCity.Win.Editors
' 休日スタイルを取得します。
Dim nationalHoliday As HolidayStyle = GcDate1.DropDownCalendar.HolidayStyles("NationalHoliday")
' 振替休日を翌営業日に設定します。
nationalHoliday.Holidays.Weekdays.Sunday = New DayOfWeekHolidayPolicy(WeekFlags.All, HolidayOverride.NextWorkDay)
[C#]
using GrapeCity.Win.Editors;
HolidayStyle nationalHoliday = GcDate1.DropDownCalendar.HolidayStyles["NationalHoliday"];
// 振替休日を翌営業日に設定します。
nationalHoliday.Holidays.Weekdays.Sunday = new DayOfWeekHolidayPolicy(WeekFlags.All, HolidayOverride.NextWorkday);
祝日設定の詳細や具体的なサンプルコードについては製品ヘルプの下記の項を参照してください。
[PowerTools InputMan for Windows Forms 7.0J]
- [InputManの使い方]
- [日付時刻コントロール]
- [ドロップダウンカレンダー]
- [休日を設定する]
■振替休日を休日として追加する
2014年5月6日などの月曜以外の振替休日を「振替休日」という名称の休日として追加します。
このとき、DayOfWeekHolidayPolicyクラスのOverrideプロパティはデフォルトのNextDay(翌日)のままにする必要があります。
製品に同梱される祝日定義ファイル(Holiday.xml)には月曜以外の振替休日は含まれていません。月曜以外の振替休日を休日として追加されている最新の定義ファイル「Holiday_振替休日あり.xml」はこちらからダウンロードできます。
※最新の祝日定義ファイルは新しい祝日である「山の日」に対応しています。
祝日定義ファイルのインポートについては、製品ヘルプの下記の項を参照してください。
[PowerTools InputMan for Windows Forms 7.0J]
- [InputManの使い方]
- [日付時刻コントロール]
- [祝日定義ファイルのインポート/エクスポート]