Функция negated

Функция negated класса Period возвращает новый объект периода, в котором значения лет, месяцев и дней умножены на -1. Эта функция полезна для изменения знака периода, например, для преобразования положительного периода в отрицательный и наоборот.

Импорт

kotlinimport java.time.Period

Синтаксис

kotlinfun negated(): Period

Пример

Создадим положительный период и преобразуем его в отрицательный:

kotlinval period = Period.of(2, 3, 15)
val negatedPeriod = period.negated()

println("Original period: $period")
println("Negated period: $negatedPeriod")

Результат выполнения кода:

kotlinString "Original period: P2Y3M15D"
String "Negated period: P-2Y-3M-15D"

Пример

Преобразуем отрицательный период в положительный:

kotlinval negativePeriod = Period.of(-1, -6, -10)
val positivePeriod = negativePeriod.negated()

println("Negative period: $negativePeriod")
println("Positive period: $positivePeriod")

Результат выполнения кода:

kotlinString "Negative period: P-1Y-6M-10D"
String "Positive period: P1Y6M10D"

Пример

Используем функцию negated для вычисления обратного временного интервала:

kotlinval period1 = Period.ofYears(5)
val period2 = period1.negated()

val date1 = LocalDate.of(2025, 1, 1)
val date2 = date1.plus(period1)
val date3 = date1.plus(period2)

println("Start date: $date1")
println("After 5 years: $date2")
println("Before 5 years: $date3")

Результат выполнения кода:

kotlinString "Start date: 2025-01-01"
String "After 5 years: 2030-01-01"
String "Before 5 years: 2020-01-01"

Пример

Проверим, что двойное применение negated возвращает исходный период:

kotlinval original = Period.ofMonths(8)
val negated = original.negated()
val doubleNegated = negated.negated()

println("Original: $original")
println("Negated: $negated")
println("Double negated: $doubleNegated")
println("Are original and double negated equal? ${original == doubleNegated}")

Результат выполнения кода:

kotlinString "Original: P8M"
String "Negated: P-8M"
String "Double negated: P8M"
String "Are original and double negated equal? true"

Смотрите также

  • функцию of класса Period,
    которая создает период из компонентов
  • функцию plus класса Period,
    которая добавляет период к другому периоду
  • функцию minus класса Period,
    которая вычитает период из другого периода
  • функцию multipliedBy класса Period,
    которая умножает период на скаляр