# Module Interval.Time

    module Time: sig .. end

    include Interval.S

    val create_ending_after : ?zone:Zone.t -> Ofday.t * Ofday.t -> now:Time.t -> t

`create_ending_after ?zone (od1, od2) ~now` returns the smallest interval `(t1 t2)` with minimum `t2` such that `t2 >= now`, `to_ofday t1 = od1`, and `to_ofday t2 = od2`. If zone is specified, it is used to translate od1 and od2 into times, otherwise the machine's time zone is used. It is not guaranteed that `contains (t1 t2) now`, which will be false iff there is no interval containing `now` with `to_ofday t1 = od1` and `to_ofday t2 = od1` .

    val create_ending_before : ?zone:Zone.t -> Ofday.t * Ofday.t -> ubound:Time.t -> t

`create_ending_before ?zone (od1, od2) ~ubound` returns the smallest interval `(t1 t2)` with maximum `t2` such that `t2 <= ubound`, `to_ofday t1 = od1`, and `to_ofday t2 = od2`. If zone is specified, it is used to translate od1 and od2 into times, otherwise the machine's time zone is used.