本文整理汇总了C#中Calendar.RulesAndParents方法的典型用法代码示例。如果您正苦于以下问题:C# Calendar.RulesAndParents方法的具体用法?C# Calendar.RulesAndParents怎么用?C# Calendar.RulesAndParents使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Calendar
的用法示例。
在下文中一共展示了Calendar.RulesAndParents方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Calc
private static decimal Calc(Calendar obj, DateTime from, DateTime until, CalcModes what)
{
decimal result = 0;
var rules = obj.RulesAndParents();
while (from <= until)
{
CalendarRule foundRule = null;
// Find YearlyRule
foundRule = rules.OfType<YearlyCalendarRule>().FirstOrDefault(r => r.AppliesTo(from));
// Find DayOfWeekRule
if (foundRule == null)
{
foundRule = rules.OfType<DayOfWeekCalendarRule>().FirstOrDefault(r => r.AppliesTo(from));
}
// Find CommonRule
if (foundRule == null)
{
foundRule = rules.OfType<CommonCalendarRule>().FirstOrDefault(r => r.AppliesTo(from));
}
if (foundRule != null)
{
switch (what)
{
case CalcModes.WorkingHours:
result += foundRule.WorkingHours;
break;
case CalcModes.WorkingDays:
if (foundRule.IsWorkingDay)
result++;
break;
case CalcModes.OffDays:
if (!foundRule.IsWorkingDay)
result++;
break;
}
}
else
{
Logging.Log.WarnFormat("No Calendar rule found in {0} for {1}", obj.Name, from);
}
from = from.AddDays(1);
}
return result;
}