Saltar al contenido

22 · Expresiones Temporales

Cast de Unidades

Extrae componentes de reloj con `as h`, `as min`, `as s`, `as ms` para formatear duraciones.

En esta página

as extrae el componente de reloj de una duración — el campo en esa posición, no el total en esa unidad. d as h da las horas enteras; d as min da los minutos restantes (0–59); d as s los segundos restantes (0–59); d as ms los milisegundos restantes.

Este comportamiento es análogo a los campos de un reloj: 25h1min1s muestra 25:1:1, no 1501:61:61.

Los componentes h, min, s y ms de una duración de 25h; total en la unidad mediante división; as ms para el resto en milisegundos.

03-cast-to-units.zolo
Playground
// Feature: extract clock components with `as`
// Syntax: `dur as h | min | s | ms` — extracts the component of that
// "field" (not the total in the unit).
// When to use: formatting like `HH:MM:SS`. For total in the unit,
// just do arithmetic: `d / 60000` = total in minutes.

// 25h 1min 1s = 90061s = 90_061_000 ms.
let d = 90061000

// Clock components: each `as <unit>` extracts that "field".
print("{d as h}:{d as min}:{d as s}")

// expected: 25:1:1

// For total in the unit, divide.
let total_min = d / 60000
let total_sec = d / 1000
print("total min: {total_min}")
print("total sec: {total_sec}")

// expected:
// total min: 1501
// total sec: 90061

// `as ms` picks up the remainder in milliseconds.
let exact = 1500
print("ms: {exact as ms}")

// expected: ms: 500

// Combined with arithmetic.
let small = 300000 + 30000
print("min={small as min}, s={small as s}")
// expected: min=5, s=30

Para obtener el total en una unidad determinada, usa la división aritmética: d / 60000 da el total de minutos, d / 1000 el total de segundos.

Consulta también

Índice global

Encuentra tu camino por Zolo

Prueba una idea

Empieza aquí

9 resultados

9 resultados

enespt-br