"O tempora, o mœurs!"

Pour mémoire: j'ai emprunté le titre à Cicero, à Oratio à Catilinam Prima à Senatu Habita .



Cicéron dénonce Catiline, fresque de Cesare Maccari, 1882-1888






Dans la vraie vie, nous avons souvent affaire à des intervalles de temps. Rendez-vous chez le dentiste, réservation de chambre d'hôtel, même votre pause déjeuner quotidienne: la planification de tout cela est la tâche d'ajuster la plage horaire à un certain nombre d'autres plages horaires.



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



Chronologie de mes heures de pointe et des heures de pointe du dentiste



, . , . , ?



, . , , .



, 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