예제 #1
0
        /// <summary>
        /// Interval을 재설정합니다.
        /// </summary>
        public override void Reset()
        {
            base.Reset();

            _isIntervalEnabled = true;
            _startEdge         = IntervalEdge.Closed;
            _endEdge           = IntervalEdge.Closed;
        }
예제 #2
0
        public TimeInterval(DateTime startInterval, DateTime endInterval, IntervalEdge startEdge, IntervalEdge endEdge,
                            bool isIntervalEnabled, bool isReadOnly)
            : base(startInterval, endInterval, isReadOnly) {
            _startEdge = startEdge;
            _endEdge = endEdge;

            _isIntervalEnabled = isIntervalEnabled;
        }
예제 #3
0
        public TimeInterval(DateTime startInterval, DateTime endInterval, IntervalEdge startEdge, IntervalEdge endEdge,
                            bool isIntervalEnabled, bool isReadOnly)
            : base(startInterval, endInterval, isReadOnly)
        {
            _startEdge = startEdge;
            _endEdge   = endEdge;

            _isIntervalEnabled = isIntervalEnabled;
        }
예제 #4
0
        public TimeInterval(ITimePeriod src) : base(src)
        {
            src.ShouldNotBeNull("src");

            var interval = src as ITimeInterval;

            if (interval != null)
            {
                _start             = interval.StartInterval;
                _end               = interval.EndInterval;
                _startEdge         = interval.StartEdge;
                _endEdge           = interval.EndEdge;
                _isIntervalEnabled = interval.IsIntervalEnabled;
            }
        }
        }         // TimeInterval

        // ----------------------------------------------------------------------
        public TimeInterval(DateTime startInterval, DateTime endInterval,
                            IntervalEdge startEdge = IntervalEdge.Closed, IntervalEdge endEdge = IntervalEdge.Closed,
                            bool isIntervalEnabled = true, bool isReadOnly = false)
        {
            if (startInterval <= endInterval)
            {
                this.startInterval = startInterval;
                this.endInterval   = endInterval;
            }
            else
            {
                this.endInterval   = startInterval;
                this.startInterval = endInterval;
            }

            this.startEdge = startEdge;
            this.endEdge   = endEdge;

            this.isIntervalEnabled = isIntervalEnabled;
            this.isReadOnly        = isReadOnly;
        }         // TimeInterval
예제 #6
0
        // ----------------------------------------------------------------------
        public TimeInterval( DateTime startInterval, DateTime endInterval,
            IntervalEdge startEdge = IntervalEdge.Closed, IntervalEdge endEdge = IntervalEdge.Closed,
            bool isIntervalEnabled = true, bool isReadOnly = false)
        {
            if ( startInterval <= endInterval )
            {
                this.startInterval = startInterval;
                this.endInterval = endInterval;
            }
            else
            {
                this.endInterval = startInterval;
                this.startInterval = endInterval;
            }

            this.startEdge = startEdge;
            this.endEdge = endEdge;

            this.isIntervalEnabled = isIntervalEnabled;
            this.isReadOnly = isReadOnly;
        }
        }         // TimeInterval

        // ----------------------------------------------------------------------
        public TimeInterval(DateTime moment,
                            IntervalEdge startEdge = IntervalEdge.Closed, IntervalEdge endEdge = IntervalEdge.Closed,
                            bool isIntervalEnabled = true, bool isReadOnly = false) :
            this(moment, moment, startEdge, endEdge, isIntervalEnabled, isReadOnly)
        {
        }         // TimeInterval
예제 #8
0
        // ----------------------------------------------------------------------
        public TimeInterval( ITimePeriod copy )
        {
            if ( copy == null )
            {
                throw new ArgumentNullException( "copy" );
            }
            ITimeInterval timeInterval = copy as ITimeInterval;
            if ( timeInterval != null )
            {
                startInterval = timeInterval.StartInterval;
                endInterval = timeInterval.EndInterval;
                startEdge = timeInterval.StartEdge;
                endEdge = timeInterval.EndEdge;
                isIntervalEnabled = timeInterval.IsIntervalEnabled;
            }
            else
            {
                startInterval = copy.Start;
                endInterval = copy.End;
            }

            isReadOnly = copy.IsReadOnly;
        }
예제 #9
0
 // ----------------------------------------------------------------------
 public virtual void Reset()
 {
     CheckModification();
     isIntervalEnabled = true;
     startInterval = TimeSpec.MinPeriodDate;
     endInterval = TimeSpec.MaxPeriodDate;
     startEdge = IntervalEdge.Closed;
     endEdge = IntervalEdge.Closed;
 }
예제 #10
0
 // ----------------------------------------------------------------------
 public TimeInterval( DateTime moment,
     IntervalEdge startEdge = IntervalEdge.Closed, IntervalEdge endEdge = IntervalEdge.Closed,
     bool isIntervalEnabled = true, bool isReadOnly = false)
     : this(moment, moment, startEdge, endEdge, isIntervalEnabled, isReadOnly)
 {
 }
예제 #11
0
 public TimeInterval(DateTime startInterval, DateTime endInterval, IntervalEdge startEdge, IntervalEdge endEdge)
     : this(startInterval, endInterval, startEdge, endEdge, true, false) {}
예제 #12
0
 public TimeInterval(DateTime moment, IntervalEdge startEdge, IntervalEdge endEdge, bool isIntervalEnabled, bool isReadOnly)
     : this(moment, moment, startEdge, endEdge, isIntervalEnabled, isReadOnly) {}
예제 #13
0
        /// <summary>
        /// Interval을 재설정합니다.
        /// </summary>
        public override void Reset() {
            base.Reset();

            _isIntervalEnabled = true;
            _startEdge = IntervalEdge.Closed;
            _endEdge = IntervalEdge.Closed;
        }
예제 #14
0
 public TimeInterval(DateTime startInterval, DateTime endInterval, IntervalEdge startEdge, IntervalEdge endEdge)
     : this(startInterval, endInterval, startEdge, endEdge, true, false)
 {
 }
예제 #15
0
 public TimeInterval(DateTime moment, IntervalEdge startEdge, IntervalEdge endEdge, bool isIntervalEnabled, bool isReadOnly)
     : this(moment, moment, startEdge, endEdge, isIntervalEnabled, isReadOnly)
 {
 }
예제 #16
0
        } // GetCalendarPeriod

        #endregion

        #region Interval

        // ----------------------------------------------------------------------
        public string GetInterval(DateTime start, DateTime end,
                                  IntervalEdge startEdge, IntervalEdge endEdge, TimeSpan duration)
        {
            if (end < start)
            {
                throw new ArgumentOutOfRangeException("end");
            }

            StringBuilder sb = new StringBuilder();

            // interval start
            switch (startEdge)
            {
            case IntervalEdge.Closed:
                sb.Append(IntervalStartClosed);
                break;

            case IntervalEdge.Open:
                sb.Append(UseIsoIntervalNotation ? intervalStartOpenIso : intervalStartOpen);
                break;
            }

            bool addDuration       = true;
            bool startHasTimeOfDay = TimeTool.HasTimeOfDay(start);

            // no duration - schow start date (optionally with the time part)
            if (duration == TimeSpec.MinPeriodDuration)
            {
                sb.Append(startHasTimeOfDay ? GetDateTime(start) : GetShortDate(start));
                addDuration = false;
            }
            // within one day: show full start, end time and suration
            else if (TimeCompare.IsSameDay(start, end))
            {
                sb.Append(GetDateTime(start));
                sb.Append(startEndSeparator);
                sb.Append(GetLongTime(end));
            }
            else
            {
                bool endHasTimeOfDay = TimeTool.HasTimeOfDay(start);
                bool hasTimeOfDays   = startHasTimeOfDay || endHasTimeOfDay;
                if (hasTimeOfDays)
                {
                    sb.Append(GetDateTime(start));
                    sb.Append(startEndSeparator);
                    sb.Append(GetDateTime(end));
                }
                else
                {
                    sb.Append(GetShortDate(start));
                    sb.Append(startEndSeparator);
                    sb.Append(GetShortDate(end));
                }
            }

            // interval end
            switch (endEdge)
            {
            case IntervalEdge.Closed:
                sb.Append(IntervalEndClosed);
                break;

            case IntervalEdge.Open:
                sb.Append(UseIsoIntervalNotation ? IntervalEndOpenIso : IntervalEndOpen);
                break;
            }

            // duration
            if (addDuration)
            {
                sb.Append(durationSeparator);
                sb.Append(GetDuration(duration));
            }

            return(sb.ToString());
        } // GetInterval
예제 #17
0
        // ----------------------------------------------------------------------
        public string GetInterval( DateTime start, DateTime end, 
            IntervalEdge startEdge, IntervalEdge endEdge, TimeSpan duration)
        {
            if ( end < start )
            {
                throw new ArgumentOutOfRangeException( "end" );
            }

            StringBuilder sb = new StringBuilder();

            // interval start
            switch ( startEdge )
            {
                case IntervalEdge.Closed:
                    sb.Append( "[" );
                    break;
                case IntervalEdge.Open:
                    sb.Append( UseIsoIntervalNotation ? "]" : "(" );
                    break;
            }

            bool addDuration = true;
            bool startHasTimeOfDay = TimeTool.HasTimeOfDay( start );

            // no duration - schow start date (optionally with the time part)
            if ( duration == TimeSpec.MinPeriodDuration )
            {
                sb.Append( startHasTimeOfDay ? GetDateTime( start ) : GetShortDate( start ) );
                addDuration = false;
            }
                // within one day: show full start, end time and suration
            else if ( TimeCompare.IsSameDay( start, end ) )
            {
                sb.Append( GetDateTime( start ) );
                sb.Append( startEndSeparator );
                sb.Append( GetLongTime( end ) );
                sb.Append( GetShortDate( start ) );
            }
            else
            {
                bool endHasTimeOfDay = TimeTool.HasTimeOfDay( start );
                bool hasTimeOfDays = startHasTimeOfDay || endHasTimeOfDay;
                if ( hasTimeOfDays )
                {
                    sb.Append( GetDateTime( start ) );
                    sb.Append( startEndSeparator );
                    sb.Append( GetDateTime( start ) );
                }
                else
                {
                    sb.Append( GetShortDate( start ) );
                    sb.Append( startEndSeparator );
                    sb.Append( GetShortDate( end ) );
                }
            }

            // interval end
            switch ( endEdge )
            {
                case IntervalEdge.Closed:
                    sb.Append( "]" );
                    break;
                case IntervalEdge.Open:
                    sb.Append( UseIsoIntervalNotation ? "[" : ")" );
                    break;
            }

            // duration
            if ( addDuration )
            {
                sb.Append( durationSeparator );
                sb.Append( GetDuration( duration ) );
            }

            return sb.ToString();
        }
예제 #18
0
        public TimeInterval(ITimePeriod src) : base(src) {
            src.ShouldNotBeNull("src");

            var interval = src as ITimeInterval;
            if(interval != null) {
                _start = interval.StartInterval;
                _end = interval.EndInterval;
                _startEdge = interval.StartEdge;
                _endEdge = interval.EndEdge;
                _isIntervalEnabled = interval.IsIntervalEnabled;
            }
        }