稼働時間を設定する場合はUltraCalendarInfoのDaysOfWeek(デフォルトの稼働時間の設定)、OwnersのDayOfWeekSettings(オーナー固有の稼働時間設定)で可能です。
いずれも曜日ごとにWorkDayStartTimeプロパティ(開始時間用)とWorkDayEndTimeプロパティ(終了時間用)で指定します。
- デフォルトの稼働時間を設定する場合
- UltraCalendarInfo.DaysOfWeekで各曜日ごとに設定
- 特定のオーナーの稼働時間を設定する場合
- UltraCalendarInfo.Ownersの該当オーナーオブジェクトのDayOfWeekSettingsで各曜日ごとに設定
- 開始時間
- WorkDayStartTimeプロパティで指定
- 終了時間
- WorkDayEndTimeプロパティで指定
コード例
// デフォルトの稼働開始時間9:00と稼働終了時間17:30を設定する。
// ultraCalendarInfo1.DaysOfWeekの各曜日に関してWorkDayStartTimeとWorkDayEndTimeを指定する。
foreach (var dayOfWeek in ultraCalendarInfo1.DaysOfWeek)
{
dayOfWeek.WorkDayStartTime = DateTime.Today.AddHours(9);
dayOfWeek.WorkDayEndTime = DateTime.Today.AddHours(17).AddMinutes(30);
}
// "Charlie"の稼働時間を、月曜日は7:00~15:30、それ以外はデフォルトの稼働時間にする場合
// "Charlie"オーナーオブジェクトを取得する。
Owner charlie = ultraCalendarInfo1.Owners["Charlie"];
// CharlieのDayOfWeekSettingsの各曜日の設定に関して
foreach (var dayOfWeekSetting in charlie.DayOfWeekSettings)
{
// 月曜日なら
if(dayOfWeekSetting.DayOfTheWeek == System.DayOfWeek.Monday)
{
// 7:00~15:30で設定する。
dayOfWeekSetting.WorkDayStartTime = DateTime.Today.AddHours(7);
dayOfWeekSetting.WorkDayEndTime = DateTime.Today.AddHours(15).AddMinutes(30);
}
// 月曜日以外なら
else
{
// デフォルト(ultraCalendarInfoにある設定)を設定する
dayOfWeekSetting.WorkDayStartTime = ultraCalendarInfo1.DaysOfWeek[dayOfWeekSetting.DayOfTheWeek].WorkDayStartTime;
dayOfWeekSetting.WorkDayEndTime = ultraCalendarInfo1.DaysOfWeek[dayOfWeekSetting.DayOfTheWeek].WorkDayEndTime;
}
}
実行結果
月曜日の例。Charlieは7:00~15:30、それ以外の人は9:00~17:30になっています。

その他の曜日の例。全員が9:00~17:30になっています。

サンプル
ドキュメント
- 「オーナー固有の就業時間の設定方法」
- 「オーナーごとに異なる就業時間を設定」