public TimeRange AddMinutes(double minutes) { var start = End; var end = End.Add(TimeSpan.FromMinutes(minutes)); return(new TimeRange(start, end)); }
public TimeRange AddSeconds(double seconds) { var start = End; var end = End.Add(TimeSpan.FromSeconds(seconds)); return(new TimeRange(start, end)); }
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); }
public TimeRange AddHours(double hours) { var start = End; var end = End.Add(TimeSpan.FromHours(hours)); return(new TimeRange(start, end)); }
public void Shift(int shift) { var seconds = new TimeSpan(0, 0, shift); Start = Start.Add(seconds); End = End.Add(seconds); }
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()); } }
/// <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); }
/// <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)); }
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(); }
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); }
} // GetNextPeriod // ---------------------------------------------------------------------- public virtual TimeSlot GetNextPeriod(TimeSpan offset) { return(new TimeSlot(End.Add(offset), Duration, IsReadOnly)); } // GetNextPeriod
//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); }
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);; }
public void Shift(TimeSpan ts) { Start = Start.Add(ts); End = End.Add(ts); }