Ruby on rails 减去两个时间范围
我有两个时间范围Ruby on rails 减去两个时间范围,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有两个时间范围 Fri, 02 Aug 2019 10:09:58 UTC +00:00..Fri, 02 Aug 2019 23:59:59 UTC +00:00 Fri, 02 Aug 2019 11:09:58 UTC +00:00..Fri, 02 Aug 2019 12:09:58 UTC +00:00 从第一个减去第二个的最简单方法是什么 [ Fri, 02 Aug 2019 10:09:58 UTC +00:00..Fri, 02 Aug 2019 11:09:58 UT
Fri, 02 Aug 2019 10:09:58 UTC +00:00..Fri, 02 Aug 2019 23:59:59 UTC +00:00
Fri, 02 Aug 2019 11:09:58 UTC +00:00..Fri, 02 Aug 2019 12:09:58 UTC +00:00
从第一个减去第二个的最简单方法是什么
[
Fri, 02 Aug 2019 10:09:58 UTC +00:00..Fri, 02 Aug 2019 11:09:58 UTC +00:00,
Fri, 02 Aug 2019 12:09:58 UTC +00:00..Fri, 02 Aug 2019 23:59:59 UTC +00:00
]
我会这样做:
range_1 = (Time.parse('2019-08-02 10:09:58 UTC') .. Time.parse('2019-08-02 23:59:59 UTC'))
range_2 = (Time.parse('2019-08-02 11:09:58 UTC') .. Time.parse('2019-08-02 12:09:58 UTC'))
[(range_1.begin..range_2.begin), (range_2.end..range_1.end)]
#=> [2019-08-02 10:09:58 UTC..2019-08-02 11:09:58 UTC, 2019-08-02 12:09:58 UTC..2019-08-02 23:59:59 UTC]
是否保证第二个范围始终包含在第一个范围内?第二个总是把第一个切成两部分吗?或者,范围是否可能只相交或根本不重叠?如果是这样,如何处理这种情况?是的,它总是包括在内。如果你通过编辑你的问题来回答@spickerman的评论,说明第二个范围完全属于第一个范围,你将赢得至少一张赞成票。
[(范围1.开始..范围2.开始),(范围2.结束..范围1.结束)]
你更快了;)