Ce face Duration.inWholeSeconds
durata.inWholeSeconds returnează numărul de secunde întregi din durată, ca Long; fracțiunile de secundă sunt tăiate, nu rotunjite. inWholeMilliseconds face același lucru în milisecunde, iar inWholeMinutes, inWholeHours și inWholeDays în celelalte unități.
Le folosești când trebuie să dai durata unei funcții care așteaptă un număr, de exemplu Thread.sleep(d.inWholeMilliseconds). Pentru a separa o durată în minute și secunde (ca 2:05), folosește toComponents { min, sec, _ -> ... }.
Ce returnează
Un Long.
Exemple
Exemplul 1: Conversii în unități întregi
2 minute și 30,9 secunde au 150 de secunde întregi; partea de 0,9 s este tăiată.
import kotlin.time.Duration.Companion.milliseconds
import kotlin.time.Duration.Companion.minutes
fun main() {
val d = 2.minutes + 30900.milliseconds
println(d)
println(d.inWholeSeconds)
println(d.inWholeMilliseconds)
println(d.inWholeMinutes)
}
Rezultat
2m 30.9s
150
150900
2
Exemplul 2: Afișare ca mm:ss
toComponents desface durata în minute și secunde, pe care le completăm cu zero.
import kotlin.time.Duration.Companion.seconds
fun main() {
for (s in listOf(65, 125, 3599)) {
val text = s.seconds.toComponents { min, sec, _ ->
"${min.toString().padStart(2, '0')}:${sec.toString().padStart(2, '0')}"
}
println("$s secunde = $text")
}
}
Rezultat
65 secunde = 01:05
125 secunde = 02:05
3599 secunde = 59:59
Exemplul 3: Durata pentru o funcție care cere milisecunde
Calculăm pauza ca Duration și o dăm lui Thread.sleep în milisecunde.
import kotlin.time.Duration.Companion.milliseconds
fun main() {
val pauza = 150.milliseconds
println("Aștept ${pauza.inWholeMilliseconds} ms...")
Thread.sleep(pauza.inWholeMilliseconds)
println("Gata")
}
Rezultat
Aștept 150 ms...
Gata
Greșeli frecvente
- Te aștepți la rotunjire: 2,9 secunde dau
inWholeSeconds = 2, nu 3. - Scrii
d.inWholeSeconds()cu paranteze. Este proprietate:d.inWholeSeconds.
Comenzi înrudite
Int.seconds: Creează o durată (Duration) dintr-un număr: 90.seconds, 5.minutes, 250.milliseconds.Thread.sleep: Oprește programul (firul curent) pentru un număr dat de milisecunde, apoi continuă.measureTimeMillis: Măsoară cât durează un bloc de cod: measureTimeMillis dă milisecunde (Long), measureTime dă un Duration.
Întrebări & Exemple de Cod:
Duration.inWholeSecondsAi o nelămurire despre utilizarea comenzii
Duration.inWholeSecondssau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.