计算sla和sla差异,不包括非工作时间,周末和公共假期

时间:2019-05-27 20:11:19

标签: c#

我需要计算两个日期之间的时间,假日除外,并且只计算工作时间在08:00至12:00和13:00至18:00之间。我已经尝试使用“ Time-Period-Library-for-NET”库来帮助我找到结束日期。为此,我需要传递开始日期和偏移量。现在,我需要相反的操作:传递开始日期,结束日期并获取这些日期之间的时间,不包括假期和不工作时间。

public void CalendarDateAddSample()
{
  CalendarDateAdd calendarDateAdd = new CalendarDateAdd();
  // weekdays
  calendarDateAdd.AddWorkingWeekDays();
  // holidays
  calendarDateAdd.ExcludePeriods.Add( new Day( 2011, 4, 5, calendarDateAdd.Calendar ) );
  // working hours
  calendarDateAdd.WorkingHours.Add( new HourRange( new Time( 08, 30 ), new Time( 12 ) ) );
  calendarDateAdd.WorkingHours.Add( new HourRange( new Time( 13, 30 ), new Time( 18 ) ) );

  DateTime start = new DateTime( 2011, 4, 1, 9, 0, 0 );
  TimeSpan offset = new TimeSpan( 22, 0, 0 ); // 22 hours

  DateTime? end = calendarDateAdd.Add( start, offset );

  Console.WriteLine( "start: {0}", start );
  // > start: 01.04.2011 09:00:00
  Console.WriteLine( "offset: {0}", offset );
  // > offset: 22:00:00
  Console.WriteLine( "end: {0}", end );
  // > end: 06.04.2011 16:30:00
} // CalendarDateAddSample

0 个答案:

没有答案