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