示例#1
0
        /// <summary> 主要计算方法 </summary>
        /// <param name="times"> 要处理的集合 </param>
        /// <param name="start"> 起始时间 </param>
        /// <param name="end"> 结束时间 </param>
        /// <param name="space"> 时间间隔或阀值 </param>
        public void CaculateTimeValue(Queue <DayTimeModelEntity <T> > times, DateTime start, DateTime end, int space)
        {
            DateTime tempTime = start;

            CaculateGroupEngine <DayTimeModelEntity <T> > engine = new CaculateGroupEngine <DayTimeModelEntity <T> >(space);

            engine.ThresholdEvent = _thresholdEvent;

            while (tempTime < end)
            {
                DayTimeModelEntity <T> outTime = GetListEntity(times, tempTime);

                if (outTime == null)
                {
                    break;
                }

                List <DayTimeModelEntity <T> > entityList = new List <DayTimeModelEntity <T> >();

                GetAppEntity(outTime, ref tempTime, ref entityList);

                foreach (var v in entityList)
                {
                    engine.AddItem(v);
                }
            }
        }
示例#2
0
        public int CompareTo(object obj)
        {
            DayTimeModelEntity <T> temp = obj as DayTimeModelEntity <T>;

            if (this.time.Date > temp.time)
            {
                return(1);
            }
            else if (this.time.Date < temp.time)
            {
                return(-1);
            }
            else
            {
                return(0);
            }
        }
示例#3
0
        /// <summary> 递归获取的时间比比较时间小则过滤掉 </summary>
        DayTimeModelEntity <T> GetListEntity(Queue <DayTimeModelEntity <T> > times, DateTime time)
        {
            if (times.Count == 0)
            {
                return(null);
            }

            DayTimeModelEntity <T> outTime = times.Dequeue();

            if (outTime.CompareTo(time) < 0)
            {
                return(GetListEntity(times, time));
            }
            else
            {
                return(outTime);
            }
        }
示例#4
0
        /// <summary> 递归批量增加间断的时间 </summary>
        void GetAppEntity(DayTimeModelEntity <T> outTime, ref DateTime tempTime, ref List <DayTimeModelEntity <T> > entityList)
        {
            if (outTime.CompareTo(tempTime) == 0)
            {
                entityList.Add(outTime);

                tempTime = tempTime.AddDays(1);
            }
            else
            {
                DayTimeModelEntity <T> entity = new DayTimeModelEntity <T>();
                entity.Time  = tempTime;
                entity.Value = defautValue;
                entityList.Add(entity);

                tempTime = tempTime.AddDays(1);

                GetAppEntity(outTime, ref tempTime, ref entityList);
            }
        }