用于检测时间段重叠的方法和装置制造方法及图纸

技术编号:28623079 阅读:10 留言:0更新日期:2021-05-28 16:18
本公开公开了用于检测时间段重叠的方法、装置、设备、存储介质、计算机程序产品,涉及云计算技术领域,尤其涉及云平台领域和云服务领域。具体实现方案为:获取待检测的时间段集合,其中,时间段集合中每个时间段包括一对起始时间和结束时间;将时间段集合中每个时间段的起始时间和结束时间分别转换成一对起始时间戳和结束时间戳;将所有的起始时间戳和结束时间戳加入队列;将队列中的所有的起始时间戳和结束时间戳进行排序;对于时间段集合中每个时间段,若队列中该时间段对应的起始时间戳的位置和结束时间戳的位置不相邻,则检测出该时间段与其它时间段重叠。该实施方式能够快速判断时间段是否重叠。

【技术实现步骤摘要】
用于检测时间段重叠的方法和装置
本公开涉及云计算
,尤其涉及云平台领域和云服务领域。
技术介绍
时间段重叠,是指给定两个时间段,有一部分时间是相同的,例如:{2020年5月10日11点,2020年5月15日18点}和{2020年5月7日11点,2020年5月12日18点}是重叠的,{2020年5月10日11点,2020年5月15日18点}和{2020年5月1日11点,2020年5月2日18点}是不重叠的。在应用软件开发中,经常会出现业务逻辑需要判断多个时间段是否重叠的场景,如:(1)发放商品优惠券时,同一个商品的多张优惠券有效期不允许重叠;(2)用户购买会员时,会员有效期不允许重叠;(3)用户购买火车票时,火车票的行驶时间不允许重叠等。所谓的“优惠券有效期”、“会员有效期”、“火车票行驶时间”本质上是“时间段”,即一个“起始时间”和一个“结束时间”的组合。在以上场景中,如果存在大量时间段需要判断是否重叠,可能会耗费大量的时间,导致应用软件的用户体验受损,例如:用户批量购买会员时,点击确认按钮,应用程序因为判断时间段合法性花费了大量时间,让用户有一种系统卡死的感觉。
技术实现思路
本公开提供了一种用于检测时间段重叠的方法、装置、设备、存储介质和计算机程序产品。根据本公开的第一方面,提供了一种用于检测时间段重叠的方法,包括:获取待检测的时间段集合,其中,所述时间段集合中每个时间段包括一对起始时间和结束时间;将所述时间段集合中每个时间段的起始时间和结束时间分别转换成一对起始时间戳和结束时间戳;将所有的起始时间戳和结束时间戳加入队列;将所述队列中的所有的起始时间戳和结束时间戳进行排序;对于所述时间段集合中每个时间段,若所述队列中该时间段对应的起始时间戳的位置和结束时间戳的位置不相邻,则检测出该时间段与其它时间段重叠。根据本公开的第二方面,提供了一种用于检测时间段重叠的装置,包括:获取单元,被配置成获取待检测的时间段集合,其中,所述时间段集合中每个时间段包括一对起始时间和结束时间;转换单元,被配置成将所述时间段集合中每个时间段的起始时间和结束时间分别转换成一对起始时间戳和结束时间戳;构建单元,被配置成将所有的起始时间戳和结束时间戳加入队列;排序单元,被配置成将所述队列中的所有的起始时间戳和结束时间戳进行排序;检测单元,被配置成对于所述时间段集合中每个时间段,若所述队列中该时间段对应的起始时间戳的位置和结束时间戳的位置不相邻,则检测出该时间段与其它时间段重叠。根据本公开的第三方面,提供了一种用于检测时间段重叠的电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面中任一项所述的方法。根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据第一方面中任一项所述的方法。根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据第一方面中任一项所述的方法。本公开的实施例提供的用于检测时间段重叠的方法和装置,通过将起始时间和结束时间分别转换成起始时间戳和结束时间戳,排序后根据时间戳之间的相邻关系判断时间段是否重叠,不需要两两进行比较,降低了时间复杂度,从而提高了检测速度。应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。附图说明附图用于更好地理解本方案,不构成对本公开的限定。其中:图1是本公开的一个实施例可以应用于其中的示例性系统架构图;图2是根据本公开的用于检测时间段重叠的方法的一个实施例的流程图;图3a-3e是根据本公开的用于检测时间段重叠的方法的一个应用场景的示意图;图4是根据本公开的用于检测时间段重叠的方法的又一个实施例的流程图;图5是根据本公开的用于检测时间段重叠的装置的一个实施例的结构示意图;图6是用来实现本公开实施例的用于检测时间段重叠的方法的电子设备的框图。具体实施方式以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。图1示出了可以应用本公开的用于检测时间段重叠的方法或用于检测时间段重叠的装置的实施例的示例性系统架构100。如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(MovingPictureExpertsGroupAudioLayerIII,动态影像专家压缩标准音频层面3)、MP4(MovingPictureExpertsGroupAudioLayerIV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103提交的时间信息进行时间段重叠检测的后台检测服务器。后台检测服务器可以对接收到的时间段重叠检测请求等数据进行分析等处理,并将处理结果(例如重叠的时间段)反馈给终端设备。需要说明的是,服务器可以是硬件,也可以是软件。当服务器为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务的多个软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。服务器也可以是云服务器,或者是带人工智能技术的智能云计算服务器或智能云主机。需要说明的是,本公开的实施例所本文档来自技高网...

【技术保护点】
1.一种用于检测时间段重叠的方法,包括:/n获取待检测的时间段集合,其中,所述时间段集合中每个时间段包括一对起始时间和结束时间;/n将所述时间段集合中每个时间段的起始时间和结束时间分别转换成一对起始时间戳和结束时间戳;/n将所有的起始时间戳和结束时间戳加入队列;/n将所述队列中的所有的起始时间戳和结束时间戳进行排序;/n对于所述时间段集合中每个时间段,若所述队列中该时间段对应的起始时间戳的位置和结束时间戳的位置不相邻,则检测出该时间段与其它时间段重叠。/n

【技术特征摘要】
1.一种用于检测时间段重叠的方法,包括:
获取待检测的时间段集合,其中,所述时间段集合中每个时间段包括一对起始时间和结束时间;
将所述时间段集合中每个时间段的起始时间和结束时间分别转换成一对起始时间戳和结束时间戳;
将所有的起始时间戳和结束时间戳加入队列;
将所述队列中的所有的起始时间戳和结束时间戳进行排序;
对于所述时间段集合中每个时间段,若所述队列中该时间段对应的起始时间戳的位置和结束时间戳的位置不相邻,则检测出该时间段与其它时间段重叠。


2.根据权利要求1所述的方法,其中,所述对于所述时间段集合中每个时间段,若所述队列中该时间段对应的起始时间戳和结束时间戳不相邻,则检测出所述时间段集合中出现重叠时间段,包括:
统计排序完的队列中,每个时间戳所处的位置,并保存在一个映射表中;
遍历每一个时间段,从所述映射表中获得当前时间段的起始时间戳、结束时间戳在队列中所处位置,若这两个位置不符合以下要求:|结束时间戳的位置-起始时间戳的位置|=1,则检测出所述时间段集合中出现重叠时间段。


3.根据权利要求1所述的方法,其中,所述方法还包括:
若所述队列中所有时间段对应的起始时间戳的位置和结束时间戳的位置都相邻,则确定出所述时间段集合中不存在重叠时间段。


4.根据权利要求1所述的方法,其中,所述方法还包括:
对于所述时间段集合中每个时间段,若所述队列中该时间段对应的起始时间戳的位置和结束时间戳的位置不相邻,则将在该时间段对应的起始时间戳的位置和结束时间戳的位置之间出现的时间戳对应的时间段确定为重叠时间段。


5.根据权利要求1所述的方法,其中,所述将所述队列中的所有时间戳进行排序,包括:
采用快速排序算法将所述队列中的所有时间戳按预定顺序进行排序。


6.一种用于检测时间段重叠的装置,包括:
获取单元,被配置成获取待检测的时间段集合,其中,所述时间段集合中每个时间段包括一对起始时间和结束时间;
转换单元,被配置成将所述时间段集合中每个时间段的起始时间和结束时间分别转换成一对起始时间戳和结束时间戳;
构建单元,被...

【专利技术属性】
技术研发人员:郭少卿
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1