"¡Oh tempora, oh mores!"

Para el registro: tomé prestado el título de Cicero, en Oratio en Catilinam Prima en Senatu Habita .



Cicerón denuncia a Catilina, fresco de Cesare Maccari, 1882-1888






En la vida real, a menudo nos ocupamos de intervalos de tiempo. Citas con el dentista, reservas de hotel, incluso una pausa para el almuerzo diaria: planificar todo esto es la tarea de ajustar la franja horaria a una serie de otras franjas horarias.



, . , 1 . . . ,  — ,  — , , , — .



Líneas de tiempo de mis horas ocupadas y las horas ocupadas del dentista



, . , . , ?



, . , , .



, Tempus!





,  — Slot. : , from to, DateTime. Slots, AVLTree. , ( ) . , , .



Slots.add/2  — , . , . Slots.merge/2 . , , , , .



Slot: ( ), , . .



Tempus



, . , ; , , , , , .



:



slots =
  [
    Tempus.Slot.wrap(~D|2020-08-07|), # whole day
    %Tempus.Slot{
      from: ~U|2020-08-08 01:01:00Z|, # one minute
      to: ~U|2020-08-08 01:02:00Z|
    },
    %Tempus.Slot{
      from: ~U|2020-08-08 01:03:00Z|, # one minute
      to: ~U|2020-08-08 01:04:00Z|
    }
  ]
  |> Enum.into(%Tempus.Slots{})


0 , , .



Tempus.add(slots, ~U|2020-08-08 01:01:30Z|, 0, :second)
#⇒ ~U[2020-08-08 01:02:00Z]


70 ,  — ~U[2020-08-08 01:00:55Z] —  DateTime (5sec + + 60sec + + 5sec):



Tempus.add(slots, ~U|2020-08-08 01:00:55Z|, 70, :second)
#⇒ ~U[2020-08-08 01:04:05Z]


. , .





Slots.merge/2 Stream . , . , , , , , .



, Slots / Slot —  (, ).



?



, , .






!




All Articles