AddWorkingWeekDays() 공개 메소드

주중 (월~금) 을 Working Day로 추가합니다.
public AddWorkingWeekDays ( ) : void
리턴 void
예제 #1
0
        public void CalendarDateAdd1Test()
        {
            CultureTestData.Default
            .RunEach(culture => {
                var timeCalendar = new TimeCalendar(new TimeCalendarConfig
                {
                    Culture   = culture,
                    EndOffset = TimeSpan.Zero
                });

                var calendarDateAdd = new CalendarDateAdd(timeCalendar);

                //! 주중 8시~18시가 Working Time 이고, 4월 4일은 제외한다
                //
                calendarDateAdd.AddWorkingWeekDays();
                calendarDateAdd.ExcludePeriods.Add(new DayRange(2011, 4, 4, calendarDateAdd.TimeCalendar));
                calendarDateAdd.WorkingHours.Add(new HourRangeInDay(8, 18));

                var start = new DateTime(2011, 4, 1, 9, 0, 0);

                calendarDateAdd.Add(start, DurationUtil.Hours(22)).Should().Be(new DateTime(2011, 4, 6, 11, 0, 0));
                calendarDateAdd.Add(start, DurationUtil.Hours(22), SeekBoundaryMode.Fill).Should().Be(new DateTime(2011, 4,
                                                                                                                   6, 11, 0,
                                                                                                                   0));

                calendarDateAdd.Add(start, DurationUtil.Hours(29)).Should().Be(new DateTime(2011, 4, 7, 8, 0, 0));
                calendarDateAdd.Add(start, DurationUtil.Hours(29), SeekBoundaryMode.Fill).Should().Be(new DateTime(2011, 4,
                                                                                                                   6, 18, 0,
                                                                                                                   0));
            });
        }
예제 #2
0
        public void CalendarDateAdd3Test()
        {
            var calendarDateAdd = new CalendarDateAdd();

            //! 주중 8:30~12:00, 13:30~18:00가 Working Time 이고, 4월 4일은 제외한다
            //
            calendarDateAdd.AddWorkingWeekDays();
            calendarDateAdd.ExcludePeriods.Add(new DayRange(2011, 4, 4, calendarDateAdd.TimeCalendar));
            calendarDateAdd.WorkingHours.Add(new HourRangeInDay(new TimeValue(8, 30), new TimeValue(12)));
            calendarDateAdd.WorkingHours.Add(new HourRangeInDay(new TimeValue(13, 30), new TimeValue(18)));

            var start = new DateTime(2011, 4, 1, 9, 0, 0);

            calendarDateAdd.Add(start, DurationUtil.Hours(3)).Should().Be(new DateTime(2011, 4, 1, 13, 30, 0));
            calendarDateAdd.Add(start, DurationUtil.Hours(4)).Should().Be(new DateTime(2011, 4, 1, 14, 30, 0));
            calendarDateAdd.Add(start, DurationUtil.Hours(8)).Should().Be(new DateTime(2011, 4, 5, 09, 0, 0));
        }
예제 #3
0
        public void CalendarDateAdd2Test()
        {
            var calendarDateAdd = new CalendarDateAdd();

            //! 주중 8시~12시, 13시~18시가 Working Time 이고, 4월 4일은 제외한다
            //
            calendarDateAdd.AddWorkingWeekDays();
            calendarDateAdd.ExcludePeriods.Add(new DayRange(2011, 4, 4, calendarDateAdd.TimeCalendar));
            calendarDateAdd.WorkingHours.Add(new HourRangeInDay(8, 12));
            calendarDateAdd.WorkingHours.Add(new HourRangeInDay(13, 18));

            DateTime start = new DateTime(2011, 4, 1, 9, 0, 0);

            calendarDateAdd.Add(start, DurationUtil.Hours(3)).Should().Be(calendarDateAdd.Add(start, DurationUtil.Hours(3)));
            calendarDateAdd.Add(start, DurationUtil.Hours(4)).Should().Be(new DateTime(2011, 4, 1, 14, 0, 0));
            calendarDateAdd.Add(start, DurationUtil.Hours(8)).Should().Be(new DateTime(2011, 4, 5, 08, 0, 0));
        }
예제 #4
0
        public void EmptyStartWeekTest()
        {
            var calendarDateAdd = new CalendarDateAdd();

            //! 주중(월~금)만 Working Time으로 넣었습니다.
            calendarDateAdd.AddWorkingWeekDays();

            var start  = new DateTime(2011, 4, 2, 13, 0, 0);
            var offset = DurationUtil.Hours(20); // 20 hours

            // 4월 2일(토), 4월 3일(일) 제외하면... 4월 4일 0시부터 20시간
            calendarDateAdd.Add(start, DurationUtil.Hours(20)).Should().Be(new DateTime(2011, 4, 4, 20, 0, 0));

            // 4월 2일(토), 4월 3일(일) 제외하면... 4월 4일 0시부터 24시간
            calendarDateAdd.Add(start, DurationUtil.Hours(24)).Should().Be(new DateTime(2011, 4, 5, 0, 0, 0));

            // 4월 2일(토), 4월 3일(일) 제외하면... 4월 4일 0시부터 5일이후 이므로 4월9일 (토), 4월 10일(일) 제외하면 4월 11일이 된다.
            calendarDateAdd.Add(start, DurationUtil.Days(5)).Should().Be(new DateTime(2011, 4, 11, 0, 0, 0));
        }
예제 #5
0
        public void EmptyStartWeekTest() {
            var calendarDateAdd = new CalendarDateAdd();

            //! 주중(월~금)만 Working Time으로 넣었습니다.
            calendarDateAdd.AddWorkingWeekDays();

            var start = new DateTime(2011, 4, 2, 13, 0, 0);
            var offset = DurationUtil.Hours(20); // 20 hours

            // 4월 2일(토), 4월 3일(일) 제외하면... 4월 4일 0시부터 20시간
            calendarDateAdd.Add(start, DurationUtil.Hours(20)).Should().Be(new DateTime(2011, 4, 4, 20, 0, 0));

            // 4월 2일(토), 4월 3일(일) 제외하면... 4월 4일 0시부터 24시간
            calendarDateAdd.Add(start, DurationUtil.Hours(24)).Should().Be(new DateTime(2011, 4, 5, 0, 0, 0));

            // 4월 2일(토), 4월 3일(일) 제외하면... 4월 4일 0시부터 5일이후 이므로 4월9일 (토), 4월 10일(일) 제외하면 4월 11일이 된다.
            calendarDateAdd.Add(start, DurationUtil.Days(5)).Should().Be(new DateTime(2011, 4, 11, 0, 0, 0));
        }
예제 #6
0
        public void CalendarDateAdd3Test() {
            var calendarDateAdd = new CalendarDateAdd();

            //! 주중 8:30~12:00, 13:30~18:00가 Working Time 이고, 4월 4일은 제외한다
            //
            calendarDateAdd.AddWorkingWeekDays();
            calendarDateAdd.ExcludePeriods.Add(new DayRange(2011, 4, 4, calendarDateAdd.TimeCalendar));
            calendarDateAdd.WorkingHours.Add(new HourRangeInDay(new TimeValue(8, 30), new TimeValue(12)));
            calendarDateAdd.WorkingHours.Add(new HourRangeInDay(new TimeValue(13, 30), new TimeValue(18)));

            var start = new DateTime(2011, 4, 1, 9, 0, 0);

            calendarDateAdd.Add(start, DurationUtil.Hours(3)).Should().Be(new DateTime(2011, 4, 1, 13, 30, 0));
            calendarDateAdd.Add(start, DurationUtil.Hours(4)).Should().Be(new DateTime(2011, 4, 1, 14, 30, 0));
            calendarDateAdd.Add(start, DurationUtil.Hours(8)).Should().Be(new DateTime(2011, 4, 5, 09, 0, 0));
        }
예제 #7
0
        public void CalendarDateAdd2Test() {
            var calendarDateAdd = new CalendarDateAdd();

            //! 주중 8시~12시, 13시~18시가 Working Time 이고, 4월 4일은 제외한다
            //
            calendarDateAdd.AddWorkingWeekDays();
            calendarDateAdd.ExcludePeriods.Add(new DayRange(2011, 4, 4, calendarDateAdd.TimeCalendar));
            calendarDateAdd.WorkingHours.Add(new HourRangeInDay(8, 12));
            calendarDateAdd.WorkingHours.Add(new HourRangeInDay(13, 18));

            DateTime start = new DateTime(2011, 4, 1, 9, 0, 0);

            calendarDateAdd.Add(start, DurationUtil.Hours(3)).Should().Be(calendarDateAdd.Add(start, DurationUtil.Hours(3)));
            calendarDateAdd.Add(start, DurationUtil.Hours(4)).Should().Be(new DateTime(2011, 4, 1, 14, 0, 0));
            calendarDateAdd.Add(start, DurationUtil.Hours(8)).Should().Be(new DateTime(2011, 4, 5, 08, 0, 0));
        }
예제 #8
0
        public void CalendarDateAdd1Test() {
            CultureTestData.Default
                .RunEach(culture => {
                             var timeCalendar = new TimeCalendar(new TimeCalendarConfig
                                                                 {
                                                                     Culture = culture,
                                                                     EndOffset = TimeSpan.Zero
                                                                 });

                             var calendarDateAdd = new CalendarDateAdd(timeCalendar);

                             //! 주중 8시~18시가 Working Time 이고, 4월 4일은 제외한다
                             //
                             calendarDateAdd.AddWorkingWeekDays();
                             calendarDateAdd.ExcludePeriods.Add(new DayRange(2011, 4, 4, calendarDateAdd.TimeCalendar));
                             calendarDateAdd.WorkingHours.Add(new HourRangeInDay(8, 18));

                             var start = new DateTime(2011, 4, 1, 9, 0, 0);

                             calendarDateAdd.Add(start, DurationUtil.Hours(22)).Should().Be(new DateTime(2011, 4, 6, 11, 0, 0));
                             calendarDateAdd.Add(start, DurationUtil.Hours(22), SeekBoundaryMode.Fill).Should().Be(new DateTime(2011, 4,
                                                                                                                                6, 11, 0,
                                                                                                                                0));

                             calendarDateAdd.Add(start, DurationUtil.Hours(29)).Should().Be(new DateTime(2011, 4, 7, 8, 0, 0));
                             calendarDateAdd.Add(start, DurationUtil.Hours(29), SeekBoundaryMode.Fill).Should().Be(new DateTime(2011, 4,
                                                                                                                                6, 18, 0,
                                                                                                                                0));
                         });
        }