示例#1
0
        public static TimePoint Subtract(TimePoint x, Duration y)
        {
            if (x is CalendarDateTime)
            {
                return Subtract((CalendarDateTime)x, y);
            }

            if (x is OrdinalDateTime)
            {
                return Subtract(((OrdinalDateTime)x).ToCalendarDateTime(), y);
            }

            if (x is WeekDateTime)
            {
                return Subtract(((WeekDateTime)x).ToCalendarDateTime(), y);
            }

            if (x is CalendarDate)
            {
                return Subtract((CalendarDate)x, y);
            }

            if (x is OrdinalDate)
            {
                return Subtract(((OrdinalDate)x).ToCalendarDate(), y);
            }

            if (x is WeekDate)
            {
                return Subtract(((WeekDate)x).ToCalendarDate(), y);
            }

            if (x is Time)
            {
                return Subtract((Time)x, y);
            }

            throw new InvalidOperationException($"A {y.GetType()} cannot be subtracted from a {x.GetType()}.");
        }
示例#2
0
        public static TimePoint Add(TimePoint x, Duration y)
        {
            if (x is CalendarDateTime)
            {
                return Add((CalendarDateTime)x, y);
            }

            if (x is OrdinalDateTime)
            {
                return Add(((OrdinalDateTime)x).ToCalendarDateTime(), y);
            }

            if (x is WeekDateTime)
            {
                return Add(((WeekDateTime)x).ToCalendarDateTime(), y);
            }

            if (x is CalendarDate)
            {
                return Add((CalendarDate)x, y);
            }

            if (x is OrdinalDate)
            {
                return Add(((OrdinalDate)x).ToCalendarDate(), y);
            }

            if (x is WeekDate)
            {
                return Add(((WeekDate)x).ToCalendarDate(), y);
            }

            if (x is Time)
            {
                return Add((Time)x, y);
            }

            throw new InvalidOperationException($"A {y.GetType()} cannot be added to a {x.GetType()}.");
        }
示例#3
0
        internal static TimeSpan Subtract(CalendarDateTime later, TimePoint earlier)
        {
            if (earlier is CalendarDateTime)
            {
                return later - (CalendarDateTime)earlier;
            }

            if (earlier is OrdinalDateTime)
            {
                return later - ((OrdinalDateTime)earlier).ToCalendarDateTime();
            }

            if (earlier is WeekDateTime)
            {
                return later - ((WeekDateTime)earlier).ToCalendarDateTime();
            }

            if (earlier is CalendarDate)
            {
                return later - (CalendarDate)earlier;
            }

            if (earlier is OrdinalDate)
            {
                return later - ((OrdinalDate)earlier).ToCalendarDate();
            }

            if (earlier is WeekDate)
            {
                return later - ((WeekDate)earlier).ToCalendarDate();
            }

            if (earlier is Time)
            {
                return later - (Time)earlier;
            }

            throw new InvalidOperationException($"A {earlier.GetType()} cannot be subtracted from a {later.GetType()}");
        }
示例#4
0
        internal static TimeSpan Subtract(Time later, TimePoint earlier)
        {
            if (earlier is Time)
            {
                return later - (Time)earlier;
            }

            throw new InvalidOperationException($"A {earlier.GetType()} cannot be subtracted from a {later.GetType()}");
        }
示例#5
0
        public static TimeSpan Subtract(TimePoint later, TimePoint earlier)
        {
            if (later is CalendarDateTime)
            {
                return Subtract((CalendarDateTime)later, earlier);
            }

            if (later is OrdinalDateTime)
            {
                return Subtract(((OrdinalDateTime)later).ToCalendarDateTime(), earlier);
            }

            if (later is WeekDateTime)
            {
                return Subtract(((WeekDateTime)later).ToCalendarDateTime(), earlier);
            }

            if (later is CalendarDate)
            {
                return Subtract((CalendarDate)later, earlier);
            }

            if (later is OrdinalDate)
            {
                return Subtract(((OrdinalDate)later).ToCalendarDate(), earlier);
            }

            if (later is WeekDate)
            {
                return Subtract(((WeekDate)later).ToCalendarDate(), earlier);
            }

            if (later is Time)
            {
                return Subtract((Time)later, earlier);
            }

            throw new InvalidOperationException($"A {earlier.GetType()} cannot be subtracted from a {later.GetType()}");
        }