¿Cómo formatear los intervalos de tiempo para la visualización del usuario (como redes sociales) en Swift?

Tengo un intervalo de tiempo, digamos, 12600, que es equivalente a 3 horas y 30 minutos. ¿Cómo podría formatear cualquier intervalo de tiempo para que solo se mantenga la parte más alta del intervalo (por ejemplo, en este caso, las horas) y se agregue la abreviatura de ubicación correcta al número. Por ejemplo, 10 m (10 minutos), 3d (3 días), 1 año (1 año).

EDITAR: Aquí hay algunos ejemplos:

Time interval in: 90000    Whole string: 1d      String out: 1d
Time interval in: 900      Whole string: 15m     String out: 15m
Time interval in: 13500    Whole String: 3h 45m  String out: 4h

Como regla general, aplique las reglas normales de redondeo (3.4 rondas hacia abajo, 3.6 rondas hacia arriba).

Respuestas a la pregunta(6)

Su respuesta a la pregunta