//----------------------------------------------------------------------- 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))); }
//----------------------------------------------------------------------- //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)); }
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))); } }