Saltar al contenido

Aritmética con Duraciones

En esta página

Como las duraciones son simplemente i64, los operadores +, -, * y / funcionan sin conversiones. Esto hace que composiciones como ttl = 2h + 30min o intervalo * 2 sean idiomáticas e inmediatas.

La suma combina duraciones independientes en un total:

Composición de duraciones, "tiempo restante", escalado por escalar, fracción de intervalo y comparaciones con == y >.

02-arithmetic.zolo
Playground
// Feature: arithmetic between durations

// Syntax: `+ - * /` work directly between literals and durations

// When to use: compose durations (ttl = 2h + 30min), scale (interval

// * 2), slice (timeout / 4). Since everything is `i64 ms` underneath,

// nothing is surprising.


// Sum of durations.

let ttl = 7200000 + 1800000 + 45000
print(ttl)

// expected: 9045000


// Subtraction — useful for "remaining time".

let limit = 3600000
let spent = 900000
let remaining = limit - spent
print(remaining)

// expected: 2700000   (45min in ms)


// Multiplication by scalar — scaling intervals.

let interval = 30000
let twice = interval * 2
print(twice)

// expected: 60000


// Division by scalar — slices.

let total = 3600000
let quarter = total / 4
print(quarter)

// expected: 900000   (15min in ms)


// Comparisons — work because both are numbers.

let a = 1000
let b = 1000
if a == b {
  print("1s == 1000ms")
}

// expected: 1s == 1000ms


if 300000 > 30000 {
  print("minutes > seconds")
}
// expected: minutes > seconds

Las comparaciones también funcionan de forma natural: elapsed > 5s es equivalente a elapsed > 5000. No hay sobrecarga de operadores — es aritmética entera común.

Desafío

Calcula cuánto tiempo falta para completar 2 horas sabiendo que ya han pasado 45min + 20s. Imprime el resultado en milisegundos.

Buscar en Zolo

9 resultados

enespt-br