Beispiel #1
0
 public override T this[VcTime time]
 {
     get
     {
         if (becloud[time])
         {
             return(base[time]);
         }
         else
         {
             throw new Exception("无效的时间!");
         }
     }
     set
     {
         if (becloud[time])
         {
             base[time] = value;
         }
         else
         {
             throw new Exception("无效的时间!");
         }
     }
 }
Beispiel #2
0
        public static VcTime GetTimeFromInt32(Int32 Value)
        {
            VcTime Result = new VcTime();

            Result.Week       = (DayOfWeek)(Value / 100);
            Result.BetideNode = (eBetideNode)(Value % 100 / 10);
            Result.Order      = Value % 10;

            return(Result);
        }
Beispiel #3
0
        public virtual T this[VcTime time]
        {
            get
            {
                return(matrix[(Int32)time.Week, (Int32)time.BetideNode, time.Order]);
            }

            set
            {
                matrix[(Int32)time.Week, (Int32)time.BetideNode, time.Order] = value;
            }
        }
Beispiel #4
0
 public static Int32 TimeToInt32(VcTime Value)
 {
     if (Value != null && Value.HasValue)
     {
         return((Int32)Value.Week * 100
                + (Int32)Value.BetideNode * 10
                + Value.Order);
     }
     else
     {
         return(0);
     }
 }
Beispiel #5
0
        public DtMatrix(EnSolution Sln)
        {
            becloud = new DtMatrixFull <Boolean>();

            VcTime time = new VcTime();

            for (time.Week = DayOfWeek.Sunday; time.Week <= DayOfWeek.Saturday; time.Week++)
            {
                for (time.BetideNode = eBetideNode.Morn; time.BetideNode <= eBetideNode.Evening; time.BetideNode++)
                {
                    for (time.Order = 1; time.Order <= VcTimeLogic.cMaxTimeOrder; time.Order++)
                    {
                        if (Sln.ActiveWeekArr[(Int32)time.Week] &&
                            time.Order <= Sln.LessonNumberArr[(Int32)time.BetideNode])
                        {
                            becloud[time] = true;
                        }
                    }
                }
            }
        }
Beispiel #6
0
        public IEnumerable <VcTime> eachTime()
        {
            VcTime time   = new VcTime();
            VcTime Result = new VcTime();

            //这个循环内外次序要关注,合适的次序排出来的课表更好
            for (time.Order = 1; time.Order <= VcTimeLogic.cMaxTimeOrder; time.Order++)
            {
                for (time.BetideNode = eBetideNode.Morn; time.BetideNode <= eBetideNode.Evening; time.BetideNode++)
                {
                    for (time.Week = DayOfWeek.Sunday; time.Week <= DayOfWeek.Saturday; time.Week++)
                    {
                        if (becloud[time])
                        {
                            Result.Week       = time.Week;
                            Result.BetideNode = time.BetideNode;
                            Result.Order      = time.Order;

                            yield return(Result);
                        }
                    }
                }
            }
        }
Beispiel #7
0
 public Boolean TestTime(VcTime time)
 {
     return(time != null && becloud[time]);
 }
Beispiel #8
0
 public void CopyFieldTo(VcTime obj)
 {
     obj.Week       = Week;
     obj.BetideNode = BetideNode;
     obj.Order      = Order;
 }