Функция normalized
Функция normalized класса Period нормализует значения составных частей периода (лет, месяцев, дней), перераспределяя избытки в более крупные единицы измерения для приведения их в стандартный диапазон.
Принцип работы:
- Избыточное количество месяцев преобразуется в годы. Каждые
12месяцев конвертируются в1год. - Количество дней остаётся без изменений. Метод не выполняет конвертацию дней в месяцы и не учитывает фактическую длительность месяцев или високосные годы.
Цель функции - представить период в наиболее читаемом и стандартизированном виде,
например, преобразовать 14 месяцев в 1 год и 2 месяца.
Импорт
import java.time.Period
Синтаксис
fun normalized(): Period
Пример
Нормализуем период с 15 месяцами и 40 днями:
val period = Period.of(0, 15, 40)
val normalizedPeriod = period.normalized()
println("Original: " + period)
println("Normalized: " + normalizedPeriod)
Результат выполнения кода:
String "Original: P15M40D"
String "Normalized: P1Y3M40D"
Пример
Нормализуем период с 25 месяцами:
val period = Period.ofMonths(25)
val normalizedPeriod = period.normalized()
println("Original: " + period)
println("Normalized: " + normalizedPeriod)
Результат выполнения кода:
String "Original: P25M"
String "Normalized: P2Y1M"
Пример
Нормализуем период с отрицательными значениями:
val period = Period.of(0, -14, -45)
val normalizedPeriod = period.normalized()
println("Original: " + period)
println("Normalized: " + normalizedPeriod)
Результат выполнения кода:
String "Original: P-14M-45D"
String "Normalized: P-1Y-2M-45D"
Пример
Нормализуем период и получим отдельные компоненты:
val period = Period.of(0, 30, 400)
val normalized = period.normalized()
val years = normalized.years
val months = normalized.months
val days = normalized.days
println("Years: $years, Months: $months, Days: $days")
Результат выполнения кода:
String "Years: 2, Months: 6, Days: 400"