Пример #1
0
        //-----------------------------------------------------------------------
        public ChronoLocalDateTimeImpl <D> Plus(long amountToAdd, TemporalUnit unit)
        {
            if (unit is ChronoUnit)
            {
                ChronoUnit f = (ChronoUnit)unit;
                switch (f)
                {
                case NANOS:
                    return(PlusNanos(amountToAdd));

                case MICROS:
                    return(PlusDays(amountToAdd / MICROS_PER_DAY).PlusNanos((amountToAdd % MICROS_PER_DAY) * 1000));

                case MILLIS:
                    return(PlusDays(amountToAdd / MILLIS_PER_DAY).PlusNanos((amountToAdd % MILLIS_PER_DAY) * 1000000));

                case SECONDS:
                    return(PlusSeconds(amountToAdd));

                case MINUTES:
                    return(PlusMinutes(amountToAdd));

                case HOURS:
                    return(PlusHours(amountToAdd));

                case HALF_DAYS:                         // no overflow (256 is multiple of 2)
                    return(PlusDays(amountToAdd / 256).PlusHours((amountToAdd % 256) * 12));
                }
                return(With(Date.Plus(amountToAdd, unit), Time));
            }
            return(ChronoLocalDateTimeImpl.EnsureValid(Date.Chronology, unit.AddTo(this, amountToAdd)));
        }
Пример #2
0
        //-----------------------------------------------------------------------
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Override @SuppressWarnings("unchecked") public D plus(long amountToAdd, java.time.temporal.TemporalUnit unit)
        public virtual D Plus(long amountToAdd, TemporalUnit unit)
        {
            if (unit is ChronoUnit)
            {
                ChronoUnit f = (ChronoUnit)unit;
                switch (f)
                {
                case DAYS:
                    return(PlusDays(amountToAdd));

                case WEEKS:
                    return(PlusDays(Math.MultiplyExact(amountToAdd, 7)));

                case MONTHS:
                    return(PlusMonths(amountToAdd));

                case YEARS:
                    return(PlusYears(amountToAdd));

                case DECADES:
                    return(PlusYears(Math.MultiplyExact(amountToAdd, 10)));

                case CENTURIES:
                    return(PlusYears(Math.MultiplyExact(amountToAdd, 100)));

                case MILLENNIA:
                    return(PlusYears(Math.MultiplyExact(amountToAdd, 1000)));

                case ERAS:
                    return(With(ERA, Math.AddExact(GetLong(ERA), amountToAdd)));
                }
                throw new UnsupportedTemporalTypeException("Unsupported unit: " + unit);
            }
            return((D)ChronoLocalDate.this.plus(amountToAdd, unit));
        }
Пример #3
0
        public static Deadline Create(double deadline = 1, ChronoUnit unit = ChronoUnit.HOURS)
        {
            if (deadline <= 0)
            {
                throw new Exception("Deadline should be greater than 0");
            }

            switch (unit)
            {
            case ChronoUnit.HOURS:
                return(new Deadline(TimeSpan.FromHours(deadline)));

            case ChronoUnit.MINUTES:
                return(new Deadline(TimeSpan.FromMinutes(deadline)));

            default:
                return(new Deadline(TimeSpan.FromHours(deadline)));
            }
        }