public List <TimeJobModel> GetReverseTimeList(DateTime startTime, DateTime endTime)
        {
            List <TimeJobModel> result = new List <TimeJobModel>();

            DateTime targetTime       = new DateTime(startTime.Year, startTime.Month, startTime.Day, 0, 0, 0);
            int      startTimeCompare = DateTime.Compare(targetTime, startTime);

            targetTime = new DateTime(endTime.Year, endTime.Month, endTime.Day, 23, 59, 0);
            int endTimeCompare = DateTime.Compare(targetTime, endTime);

            if (startTimeCompare == 0 && endTimeCompare == 1) //시작시간 00:00:00, 종료시간 23:59:00 이전
            {
                TimeJobModel TimeJobModel = new TimeJobModel();
                TimeJobModel.StartTime = endTime;
                TimeJobModel.EndTime   = new DateTime(endTime.Year, endTime.Month, endTime.Day, 23, 59, 59);
                result.Add(TimeJobModel);
            }
            else if (startTimeCompare == 0 && endTimeCompare <= 0) //시작시간 00:00:00, 종료시간 23:59:00 이후
            {
                TimeJobModel TimeJobModel = new TimeJobModel();
                TimeJobModel.StartTime = startTime;
                TimeJobModel.EndTime   = endTime;
                result.Add(TimeJobModel);
            }
            else if (startTimeCompare == -1 && endTimeCompare <= 0) //시작시간 00:00:00 이후, 종료시간 23:59:00 이후
            {
                TimeJobModel TimeJobModel = new TimeJobModel();
                TimeJobModel.StartTime = new DateTime(startTime.Year, startTime.Month, startTime.Day, 0, 0, 0);
                TimeJobModel.EndTime   = startTime;
                result.Add(TimeJobModel);
            }
            else if (startTimeCompare == -1 && endTimeCompare == 1) //시작시간 00:00:00 이후, 종료시간 23:59:00 이전
            {
                TimeJobModel TimeJobModel1 = new TimeJobModel();
                TimeJobModel TimeJobModel2 = new TimeJobModel();

                TimeJobModel1.StartTime = new DateTime(startTime.Year, startTime.Month, startTime.Day, 0, 0, 0);
                TimeJobModel1.EndTime   = startTime;

                TimeJobModel2.StartTime = endTime;
                TimeJobModel2.EndTime   = new DateTime(endTime.Year, endTime.Month, endTime.Day, 23, 59, 59);

                result.Add(TimeJobModel1);
                result.Add(TimeJobModel2);
            }

            return(result);
        }
        /// <summary>
        /// <para>
        /// 외부에서 대부분의 경우 호출하도록 되어있는 간접적 작업 추가 메서드.
        /// </para>
        /// timeJob에서의 시작시간에 시각 작업을 하는 것과 끝 시간에 끝 작업을 하는 두가지 작업을 동시에 추가한다.
        /// </summary>
        /// <param name="jobGroup"></param>
        /// <param name="timeJob"></param>
        public void AddJob(string jobGroup, TimeJobModel timeJob)
        {
            DateTime nowTime          = DateTime.Now;
            int      startTimeCompare = DateTime.Compare(timeJob.StartTime, nowTime);
            int      endTimeCompare   = DateTime.Compare(timeJob.StartTime, nowTime);

            if (startTimeCompare > 0 && endTimeCompare > 0)
            {
                StringBuilder startJobName = new StringBuilder();
                StringBuilder endJobName   = new StringBuilder();

                startJobName.AppendFormat("J_S@{0}_{1}_{2}", timeJob.StartTime.ToString("yyyy-MM-dd HH:mm:ss"), DateTime.Now.Ticks, Guid.NewGuid().ToString());
                endJobName.AppendFormat("J_E@{0}_{1}_{2}", timeJob.EndTime.ToString("yyyy-MM-dd HH:mm:ss"), DateTime.Now.Ticks, Guid.NewGuid().ToString());

                AddJob(startJobName.ToString(), jobGroup, timeJob.StartTime, timeJob.StartJob);
                AddJob(endJobName.ToString(), jobGroup, timeJob.EndTime, timeJob.EndJob);
            }
        }