Ce face Int.seconds
kotlin.time.Duration reprezintă o durată de timp. O creezi cel mai ușor cu proprietățile de extensie: 30.seconds, 5.minutes, 250.milliseconds, 2.hours, 3.days. Fiecare trebuie importată din kotlin.time.Duration.Companion.
Duratele se pot aduna, scădea, înmulți cu un număr și compara (<, >). La afișare, o durată se scrie într-o formă ușor de citit: 90.seconds apare ca 1m 30s, iar 1500.milliseconds ca 1.5s. Avantajul față de un simplu Int este că unitatea face parte din valoare, deci nu mai confunzi secundele cu milisecundele.
Ce returnează
Un obiect Duration.
Exemple
Exemplul 1: Crearea și afișarea duratelor
Fiecare durată se afișează automat în unitățile potrivite.
import kotlin.time.Duration.Companion.milliseconds
import kotlin.time.Duration.Companion.minutes
import kotlin.time.Duration.Companion.seconds
fun main() {
println(90.seconds)
println(5.minutes)
println(1500.milliseconds)
println(150.minutes)
}
Rezultat
1m 30s
5m
1.5s
2h 30m
Exemplul 2: Calcule cu durate
Adunăm durata melodiilor dintr-o listă de redare și comparăm cu o oră.
import kotlin.time.Duration
import kotlin.time.Duration.Companion.minutes
import kotlin.time.Duration.Companion.seconds
fun main() {
val melodii = listOf(3.minutes + 45.seconds, 4.minutes + 12.seconds, 5.minutes + 3.seconds)
val total = melodii.fold(Duration.ZERO) { acc, d -> acc + d }
println("Total: $total")
println("Repetat de 5 ori: ${total * 5}")
println("Mai mult de o oră? ${total * 5 > 60.minutes}")
}
Rezultat
Total: 13m
Repetat de 5 ori: 1h 5m
Mai mult de o oră? true
Exemplul 3: Timpul de gătire
O rețetă cere 20 de minute de pregătire și 45 de coacere; scădem cât a trecut deja.
import kotlin.time.Duration.Companion.minutes
fun main() {
val total = 20.minutes + 45.minutes
val trecut = 38.minutes
println("Durata totală: $total")
println("Mai rămân: ${total - trecut}")
}
Rezultat
Durata totală: 1h 5m
Mai rămân: 27m
Greșeli frecvente
- Uiți importul și primești
Unresolved reference: seconds. Importă fiecare unitate:import kotlin.time.Duration.Companion.seconds. - Folosești un
Intpentru timeout și nu mai știi dacă înseamnă secunde sau milisecunde. UnDurationpăstrează unitatea.
Comenzi înrudite
Duration.inWholeSeconds: Transformă o durată într-un număr Long de secunde sau milisecunde întregi (restul se taie).measureTimeMillis: Măsoară cât durează un bloc de cod: measureTimeMillis dă milisecunde (Long), measureTime dă un Duration.Thread.sleep: Oprește programul (firul curent) pentru un număr dat de milisecunde, apoi continuă.