|
|
|
@ -37,6 +37,7 @@ import java.time.temporal.ChronoUnit; |
|
|
|
import java.time.temporal.TemporalAccessor; |
|
|
|
import java.util.Locale; |
|
|
|
import java.util.function.BiFunction; |
|
|
|
import java.util.function.Function; |
|
|
|
|
|
|
|
public class TbDate implements Serializable, Cloneable { |
|
|
|
|
|
|
|
@ -481,6 +482,43 @@ public class TbDate implements Serializable, Cloneable { |
|
|
|
instant = Instant.ofEpochMilli(dateMilliSecond); |
|
|
|
} |
|
|
|
|
|
|
|
public void addDays(int days) { |
|
|
|
adjustTime(zonedDateTime -> zonedDateTime.plusDays(days)); |
|
|
|
} |
|
|
|
|
|
|
|
public void addYears(int years) { |
|
|
|
adjustTime(zonedDateTime -> zonedDateTime.plusYears(years)); |
|
|
|
} |
|
|
|
|
|
|
|
public void addMonths(int months) { |
|
|
|
adjustTime(zonedDateTime -> zonedDateTime.plusMonths(months)); |
|
|
|
} |
|
|
|
|
|
|
|
public void addWeeks(int weeks) { |
|
|
|
adjustTime(zonedDateTime -> zonedDateTime.plusWeeks(weeks)); |
|
|
|
} |
|
|
|
|
|
|
|
public void addHours(int hours) { |
|
|
|
adjustTime(zonedDateTime -> zonedDateTime.plusHours(hours)); |
|
|
|
} |
|
|
|
|
|
|
|
public void addMinutes(int minutes) { |
|
|
|
adjustTime(zonedDateTime -> zonedDateTime.plusMinutes(minutes)); |
|
|
|
} |
|
|
|
|
|
|
|
public void addSeconds(int seconds) { |
|
|
|
adjustTime(zonedDateTime -> zonedDateTime.plusSeconds(seconds)); |
|
|
|
} |
|
|
|
|
|
|
|
public void addNanos(long nanos) { |
|
|
|
adjustTime(zonedDateTime -> zonedDateTime.plusNanos(nanos)); |
|
|
|
} |
|
|
|
|
|
|
|
private void adjustTime(Function<ZonedDateTime, ZonedDateTime> adjuster) { |
|
|
|
ZonedDateTime zonedDateTime = adjuster.apply(getZonedDateTime()); |
|
|
|
this.instant = zonedDateTime.toInstant(); |
|
|
|
} |
|
|
|
|
|
|
|
public ZoneOffset getLocaleZoneOffset(Instant... instants){ |
|
|
|
return ZoneId.systemDefault().getRules().getOffset(instants.length > 0 ? instants[0] : this.instant); |
|
|
|
} |
|
|
|
|