コード例 #1
0
        public static Func <DateTime, DateTime> AddOneAmountOfTimeFunction(ETimeInterval interval)
        {
            Func <DateTime, DateTime> addAmountOfTimeFunction;

            if (interval == ETimeInterval.Millisecond)
            {
                addAmountOfTimeFunction = date => date.AddMilliseconds(1);
            }
            else if (interval == ETimeInterval.Second)
            {
                addAmountOfTimeFunction = date => date.AddSeconds(1);
            }
            else if (interval == ETimeInterval.Minute)
            {
                addAmountOfTimeFunction = date => date.AddMinutes(1);
            }
            else if (interval == ETimeInterval.Hour)
            {
                addAmountOfTimeFunction = date => date.AddHours(1);
            }
            else if (interval == ETimeInterval.Day)
            {
                addAmountOfTimeFunction = date => date.AddDays(1);
            }
            else if (interval == ETimeInterval.Month)
            {
                addAmountOfTimeFunction = date => date.AddMonths(1);
            }
            else
            {
                addAmountOfTimeFunction = date => date.AddYears(1);
            }

            return(addAmountOfTimeFunction);
        }
コード例 #2
0
        public static DateTime ResetDateTime(DateTime date, ETimeInterval interval)
        {
            if (interval > ETimeInterval.Millisecond)
            {
                date = date.ResetMilliseconds();
            }
            if (interval > ETimeInterval.Second)
            {
                date = date.ResetSeconds();
            }
            if (interval > ETimeInterval.Minute)
            {
                date = date.ResetMinutes();
            }
            if (interval > ETimeInterval.Hour)
            {
                date = date.ResetHours();
            }
            if (interval > ETimeInterval.Day)
            {
                date = date.ResetDays();
            }
            if (interval > ETimeInterval.Month)
            {
                date = date.ResetMonths();
            }

            return(date);
        }
コード例 #3
0
        public static Func <DateTime, int> GetAmountOfTimeFunction(ETimeInterval interval)
        {
            Func <DateTime, int> amountOfTimeFunction;

            if (interval == ETimeInterval.Millisecond)
            {
                amountOfTimeFunction = date => date.Millisecond;
            }
            else if (interval == ETimeInterval.Second)
            {
                amountOfTimeFunction = date => date.Second;
            }
            else if (interval == ETimeInterval.Minute)
            {
                amountOfTimeFunction = date => date.Minute;
            }
            else if (interval == ETimeInterval.Hour)
            {
                amountOfTimeFunction = date => date.Hour;
            }
            else if (interval == ETimeInterval.Day)
            {
                amountOfTimeFunction = date => date.Day;
            }
            else if (interval == ETimeInterval.Month)
            {
                amountOfTimeFunction = date => date.Month;
            }
            else
            {
                amountOfTimeFunction = date => date.Year;
            }

            return(amountOfTimeFunction);
        }
コード例 #4
0
        // --------------------------------------------------------------------------------------------------------------------------
        public static DateTimeOffset AlignDateToInterval(DateTimeOffset start, ETimeInterval interval, int offset = 1)
        {
            switch (interval)
            {
            case ETimeInterval.Monthly:
                start = new DateTimeOffset(start.Year, start.Month, offset, 0, 0, 0, TimeSpan.Zero);
                return(start);

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
コード例 #5
0
        // --------------------------------------------------------------------------------------------------------------------------
        public static DateTimeOffset IncrementInterval(DateTimeOffset current, ETimeInterval interval)
        {
            switch (interval)
            {
            case ETimeInterval.Monthly:
                current = current.AddMonths(1);
                return(current);

            default:
                throw new ArgumentOutOfRangeException();
            }
            throw new NotImplementedException();
        }
コード例 #6
0
        public static int GetMaximumAmountOfTime(ETimeInterval interval)
        {
            switch (interval)
            {
            case ETimeInterval.Millisecond: return(1000);

            case ETimeInterval.Second: return(60);

            case ETimeInterval.Minute: return(60);

            case ETimeInterval.Hour: return(24);

            case ETimeInterval.Day: return(31);

            case ETimeInterval.Month: return(12);

            default: throw new ArgumentException(nameof(interval));
            }
        }