Exemplo n.º 1
0
        public TimeRange AddMinutes(double minutes)
        {
            var start = End;
            var end   = End.Add(TimeSpan.FromMinutes(minutes));

            return(new TimeRange(start, end));
        }
Exemplo n.º 2
0
        public TimeRange AddSeconds(double seconds)
        {
            var start = End;
            var end   = End.Add(TimeSpan.FromSeconds(seconds));

            return(new TimeRange(start, end));
        }
Exemplo n.º 3
0
 public void AddRange(double start, double end)
 {
     for (int i = 0; i < Start.Count;)
     {
         if (start > End[i] + _minLineSeparation)
         {
             i++;
         }
         else if (end + _minLineSeparation < Start[i])
         {
             Start.Insert(i, start);
             End.Insert(i, end);
             return;
         }
         else
         {
             // overlap !!
             if (Start[i] < start)
             {
                 start = Start[i];
             }
             if (End[i] > end)
             {
                 end = End[i];
             }
             Start.RemoveAt(i);
             End.RemoveAt(i);
         }
     }
     Start.Add(start);
     End.Add(end);
 }
Exemplo n.º 4
0
        public TimeRange AddHours(double hours)
        {
            var start = End;
            var end   = End.Add(TimeSpan.FromHours(hours));

            return(new TimeRange(start, end));
        }
Exemplo n.º 5
0
        public void Shift(int shift)
        {
            var seconds = new TimeSpan(0, 0, shift);

            Start = Start.Add(seconds);
            End   = End.Add(seconds);
        }
Exemplo n.º 6
0
 public void ToLocalTime()
 {
     Start = Start.Add(Start - Start.ToUniversalTime());
     End   = End.Add(End - End.ToUniversalTime());
     if (Finish.HasValue)
     {
         Finish = Finish.Value.Add(Finish.Value - Finish.Value.ToUniversalTime());
     }
 }
Exemplo n.º 7
0
        /// <summary>
        /// 지정된 Offset만큼 기간이 이후 시간으로 이동한 TimeBlock을 반환한다.
        /// </summary>
        /// <param name="offset"></param>
        /// <returns></returns>
        public virtual ITimeBlock GetNextBlock(TimeSpan offset)
        {
            var startOff = (offset > TimeSpan.Zero) ? offset : offset.Negate();
            var result   = new TimeBlock(End.Add(startOff), Duration, IsReadOnly);

            if (IsDebugEnabled)
            {
                log.Debug("다음 Block을 구합니다. offset=[{0}], NextBlock=[{1}]", offset, result);
            }

            return(result);
        }
Exemplo n.º 8
0
        /// <summary>
        /// 현 TimeBlock에서 오프셋만큼 Shift 한 <see cref="TimeBlock"/> 반환합니다.
        /// </summary>
        /// <param name="offset"></param>
        /// <returns></returns>
        public new TimeBlock Copy(TimeSpan offset)
        {
            if (IsDebugEnabled)
            {
                log.Debug("[{0}] 를 offset[{1}] 을 주어 복사한 객체를 반환합니다...", GetType().Name, offset);
            }

            if (offset == TimeSpan.Zero)
            {
                return(new TimeBlock(this));
            }

            return(new TimeBlock(HasStart ? Start.Add(offset) : _start,
                                 HasEnd ? End.Add(offset) : _end,
                                 IsReadOnly));
        }
Exemplo n.º 9
0
        public void MoveRight(int value)
        {
            if (value == 5)
            {
                Start = Start.Add(BigStep);
                End   = End.Add(BigStep);
            }

            else
            {
                Start = Start.Add(SmallStep);
                End   = End.Add(SmallStep);
            }

            OnTimeLineChanged(Start, End);
            //Recreate();
        }
Exemplo n.º 10
0
 public void MouseMove(object obj)
 {
     if (obj is MouseEventArgs)
     {
         var e       = obj as MouseEventArgs;
         var element = e.Source;
         if (Mouse.LeftButton == MouseButtonState.Pressed)
         {
             if ((Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl)))
             {
                 if (element is System.Windows.Shapes.Rectangle)
                 {
                     var rectangle = element as System.Windows.Shapes.Rectangle;
                     element = HelperStaticFunctions.FindParentOfType <System.Windows.Controls.Grid>(rectangle);
                 }
                 if (element is System.Windows.Controls.Grid)
                 {
                     var grid  = element as System.Windows.Controls.Grid;
                     var delta = this.Duration.Divide(100);
                     currentPoint = e.GetPosition(grid);
                     if (isFirstMove)
                     {
                         isFirstMove   = false;
                         previousPoint = currentPoint;
                     }
                     else
                     {
                         if (currentPoint.X > previousPoint.X)
                         {
                             Start = Start.Subtract(delta);
                             End   = End.Subtract(delta);
                         }
                         else
                         {
                             Start = Start.Add(delta);
                             End   = End.Add(delta);
                         }
                         previousPoint = currentPoint;
                     }
                 }
             }
         }
     }
 }
        public Transfer(XmlNode root, Condition owner)
        {
            Init();
            Expression  = root.SelectSingleNode("Expression").InnerText;
            Probability = double.Parse(root.Attributes["probability"].Value);
            Name        = root.Attributes["name"].Value;
            if (root.Attributes["allTransfers"] != null)
            {
                AllTransfers = bool.Parse(root.Attributes["allTransfers"].Value);
            }
            foreach (XmlNode startXML in root.SelectNodes("Start"))
            {
                string nameStart = startXML.Attributes["name"].Value;

                foreach (Condition conditions in owner.Conditions)
                {
                    if (conditions.Name == nameStart)
                    {
                        Start.Add(conditions);
                        conditions.Outputs.Add(this);
                        break;
                    }
                }
            }
            foreach (XmlNode startXML in root.SelectNodes("End"))
            {
                string nameStart = startXML.Attributes["name"].Value;
                foreach (Condition conditions in owner.Conditions)
                {
                    if (conditions.Name == nameStart)
                    {
                        End.Add(conditions);
                        conditions.Inputs.Add(this);
                        break;
                    }
                }
            }
            owner.Transfers.Add(this);
        }
Exemplo n.º 12
0
        } // GetNextPeriod

        // ----------------------------------------------------------------------
        public virtual TimeSlot GetNextPeriod(TimeSpan offset)
        {
            return(new TimeSlot(End.Add(offset), Duration, IsReadOnly));
        } // GetNextPeriod
Exemplo n.º 13
0
        //public PlanElement(int orderNo, DateTime start, DateTime end)
        //{
        //    OrderNo = orderNo;
        //    Start = start;
        //    End = end;
        //}

        //public PlanElement(string placeName, string placeId,  double lat, double lng, int orderNo, DateTime start, DateTime end, PlanElementType elementType, double? rating=null)
        //{
        //    PlaceName = placeName;
        //    PlaceId = placeId;
        //    Lat = lat;
        //    Lng = lng;
        //    OrderNo = orderNo;
        //    Start = start;
        //    End = end;
        //    //ElementType = elementType;
        //   // Rating = rating;
        //}

        //public PlanElement(string placeName, string placeId, double lat, double lng, int orderNo, PlanElementType elementType, double? rating = null)
        //{
        //    PlaceName = placeName;
        //    PlaceId = placeId;
        //    Lat = lat;
        //    Lng = lng;
        //    OrderNo = orderNo;
        //    ElementType = elementType;
        //    Rating = rating;
        //    Start = new DateTime();
        //    End = new DateTime();
        //}



        public void UpdateDateTimeWithRouteDuration(TimeSpan routeDuration)
        {
            Start = Start.Add(routeDuration);
            End   = End.Add(routeDuration);
        }
Exemplo n.º 14
0
        public RestrictionProfile getRestriction(TimeSpan TimeDiff)
        {
            RestrictionProfile RetValue = null;
            bool Enabled = false;

            if (Boolean.TryParse(isEnabled, out Enabled))
            {
                if (Enabled)
                {
                    List <DayOfWeek>           myDays = new List <DayOfWeek>();
                    List <RestrictionTimeLine> RestrictingTimeLines = new List <RestrictionTimeLine>();
                    foreach (WeekDays eachWeekDays in WeekDayOption)
                    {
                        DateTimeOffset Start;
                        bool           parseCheck = DateTimeOffset.TryParse(eachWeekDays.Start, out Start);
                        if (!parseCheck)
                        {
                            throw new Exception("Error parsing one of your Start times in restrictive week data");
                        }


                        DateTimeOffset revisedStart           = Start.Add(-TimeDiff);
                        int            startDayIndexIncrement = revisedStart.DayOfYear - Start.DayOfYear;
                        Start = revisedStart;


                        DateTimeOffset End;
                        parseCheck = DateTimeOffset.TryParse(eachWeekDays.End, out End);
                        if (!parseCheck)
                        {
                            throw new Exception("Error parsing one of your End times in restrictive week data");
                        }

                        DateTimeOffset revisedEnd           = End.Add(-TimeDiff);
                        int            endDayIndexIncrement = revisedEnd.DayOfYear - End.DayOfYear;
                        End = revisedEnd;


                        int DayIndex;
                        parseCheck = int.TryParse(eachWeekDays.Index, out DayIndex);
                        if (!parseCheck)
                        {
                            throw new Exception("Invalid day index provided in restrictive week data");
                        }



                        DayOfWeek myDay;
                        try
                        {
                            myDay = (DayOfWeek)((DayIndex + startDayIndexIncrement) % Utility.daysInAWeek);
                        }
                        catch (Exception e)
                        {
                            throw new Exception("Invalid day index provided in restrictive week data");
                        }

                        RestrictionTimeLine restrictingFrame = new RestrictionTimeLine(Start, End);

                        myDays.Add(myDay);
                        RestrictingTimeLines.Add(restrictingFrame);
                    }

                    RetValue = new RestrictionProfile(myDays, RestrictingTimeLines);
                }
            }
            return(RetValue);;
        }
Exemplo n.º 15
0
 public void Shift(TimeSpan ts)
 {
     Start = Start.Add(ts);
     End   = End.Add(ts);
 }