掌桥专利:专业的专利平台
掌桥专利
首页

一种计数方法及装置

文献发布时间:2023-06-19 09:46:20


一种计数方法及装置

技术领域

本公开涉及计算机技术领域,具体而言,涉及一种计数方法及装置。

背景技术

计数是一种最简单基本的运算,可以通过计数器在计算机中实现,并且在各个场景都有广泛的应用。比如,通过计数器可以记录用户在使用应用程序时进行的各种操作,如登录次数、完成任务数量、累计登录天数等。在计数时,计数规则通常涉及到一些与时间强相关的限制,如一年内登录的次数、一周内发表评论的次数、一天内访问页面的次数、连续登录的时间等。

通常,业务人员需要针对不同的计数规则来编写计数器的计数逻辑,不能够快速的生成计数逻辑,如果针对每条规则的计数器进行编码开发,明显会带来很高的工作量,开发效率较低。

发明内容

本公开实施例至少提供一种计数方法及装置。

第一方面,本公开实施例提供了一种计数方法,包括:

在检测到目标事件触发时,基于计数任务对应的时间单位,确定所述目标事件的第一触发时间;

若所述计数任务在目标时间周期下对应的目标计数集合中,不存在所述第一触发时间,则确定所述目标计数集合中距离所述第一触发时间最近的第二触发时间;

基于所述第一触发时间与所述第二触发时间,对所述目标计数集合进行更新;所述目标计数集合中触发时间的数量为所述计数任务在目标时间周期下的计数结果。

一种可选的实施方式中,在确定所述目标事件的第一触发时间之后,所述方法还包括:

基于所述第一触发时间,以及所述计数任务的多个目标计数集合对应的时间周期,确定目标时间周期以及所述目标时间周期对应的目标计数集合。

一种可选的实施方式中,所述基于所述第一触发时间与所述第二触发时间,对所述目标计数集合进行更新,包括:

确定所述第一触发时间与所述第二触发时间之间的时间差;

将所述时间差与预设的时间间隔进行对比;

基于所述对比结果,对所述目标计数集合进行更新。

一种可选的实施方式中,所述基于所述对比结果,对所述目标计数集合进行更新,包括:

若所述时间差与所述预设的时间间隔一致,则将所述第一触发时间添加至所述目标计数集合中;

若所述时间差与所述预设的时间间隔不一致,则将所述目标计数集合中的触发时间清空,再将所述第一触发时间添加至所述目标计数集合中。

一种可选的实施方式中,所述时间单位包括以下至少一种:

天、星期、月、年。

一种可选的实施方式中,所述基于计数任务对应的时间单位,确定所述目标事件的第一触发时间,包括:

基于所述计数任务对应的时间单位,对检测到所述目标事件触发的时间进行取整处理,得到所述第一触发时间。

第二方面,本公开实施例还提供一种计数装置,包括:

第一确定模块,用于在检测到目标事件触发时,基于计数任务对应的时间单位,确定所述目标事件的第一触发时间;

第二确定模块,用于若所述计数任务在目标时间周期下对应的目标计数集合中,不存在所述第一触发时间,则确定所述目标计数集合中距离所述第一触发时间最近的第二触发时间;

更新模块,用于基于所述第一触发时间与所述第二触发时间,对所述目标计数集合进行更新;所述目标计数集合中触发时间的数量为所述计数任务在目标时间周期下的计数结果。

一种可选的实施方式中,所述第一确定模块还用于:

基于所述第一触发时间,以及所述计数任务的多个目标计数集合对应的时间周期,确定目标时间周期以及所述目标时间周期对应的目标计数集合。

一种可选的实施方式中,所述更新模块具体用于:

确定所述第一触发时间与所述第二触发时间之间的时间差;

将所述时间差与预设的时间间隔进行对比;

基于所述对比结果,对所述目标计数集合进行更新。

一种可选的实施方式中,所述更新模块在基于所述对比结果,对所述目标计数集合进行更新时,具体用于:

若所述时间差与所述预设的时间间隔一致,则将所述第一触发时间添加至所述目标计数集合中;

若所述时间差与所述预设的时间间隔不一致,则将所述目标计数集合中的触发时间清空,再将所述第一触发时间添加至所述目标计数集合中。

一种可选的实施方式中,所述时间单位包括以下至少一种:

天、星期、月、年。

一种可选的实施方式中,所述第一确定模块具体用于:

基于所述计数任务对应的时间单位,对检测到所述目标事件触发的时间进行取整处理,得到所述第一触发时间。

第三方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。

第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。

关于上述计数装置、计算机设备、及计算机可读存储介质的效果描述参见上述计数方法的说明,这里不再赘述。

本公开实施例提供的计数方法及装置,可以基于计数任务对应的时间单位,确定目标事件的第一触发时间,在计数任务在目标时间周期下对应的目标计数集合中,不存在第一触发时间的情况下,确定目标计数集合中距离第一触发时间最近的第二触发时间,并根据第一触发时间与第二触发时间对目标计数集合进行更新,进而实现对计数任务在目标时间周期下的计数结果进行更新,能够实现对多种时间周期下的计数任务的计数,减少在开发不同时间周期的计数规则中的工作量,方便了基于多种计数规则的业务开展的需要。

为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本公开实施例所提供的一种计数方法的流程图;

图2示出了本公开实施例所提供的另一种计数方法的流程图;

图3示出了本公开实施例所提供的一种计数装置的示意图;

图4示出了本公开实施例所提供的一种计算机设备的示意图。

具体实施方式

为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。

经研究发现,计数过程中需要设置相应的计数规则,在计数规则中经常涉及到一些与时间强相关的限制,比如,计数规则中会限制两次计数之间的时间周期,如一年内登录的次数、一周内发表评论的次数、一天内访问页面的次数、连续登录的时间等。在进行计数逻辑的编写时,由于计数规则的时间周期通常不同,需要针对不同的计数规则进行编写,具有不同时间周期的计数逻辑的泛用性较差,代码的复用率较低,导致需要频繁进行计数逻辑的编写,开发效率较低。

基于上述研究,本公开实施例提供了一种计数方法,可以基于计数任务对应的时间单位,确定目标事件的第一触发时间,当计数任务在目标时间周期下对应的目标计数集合中,不存在第一触发时间的情况下,确定目标计数集合中距离第一触发时间最近的第二触发时间,并根据第一触发时间与第二触发时间对目标计数集合进行更新,进而实现对计数任务在目标时间周期下的计数结果进行更新,能够实现对多种时间周期下的计数任务的计数,减少在开发不同时间周期的计数规则中的工作量,效率较高。

针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

为便于对本实施例进行理解,首先对本公开实施例所公开的一种计数方法进行详细介绍,本公开实施例所提供的计数方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字处理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该计数方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。

下面以执行主体为终端设备为例对本公开实施例提供的计数方法加以说明。

参见图1所示,为本公开实施例提供的计数方法的流程图,所述方法包括步骤S101~S103,其中:

S101:在检测到目标事件触发时,基于计数任务对应的时间单位,确定所述目标事件的第一触发时间。

该步骤中,由于不同的计数任务的计数规则中可能采用不同的时间单位来进行计数,需要将检测到目标事件触发时的时间转换为目标事件的第一触发时间,第一触发时间的时间单位可以根据计数任务对应的时间单位设置。

这里,时间单位可以包括:天、星期、月、年。

具体的,可以基于所述计数任务对应的时间单位,对检测到所述目标事件触发的时间进行取整处理,得到所述第一触发时间。

示例性的,在检测到目标事件的触发时间为2020年6月8日时,若计数任务的时间单位为天,则第一触发时间可以为2020-06-08;若计数任务的时间单位为周,则第一触发时间可以为2020-week-24(2020年6月8日为2020年的第24周);若计数任务的时间单位为月,则第一触发时间可以为2020-06;若计数任务的时间单位为年,则第一触发时间可以为2020。

进一步的,在确定目标事件的第一触发时间后,该方法还可以包括:

基于所述第一触发时间,以及所述计数任务的多个目标计数集合对应的时间周期,确定目标时间周期以及所述目标时间周期对应的目标计数集合。

该步骤中,在一些计数规则中,还可以包括关于时间周期的限制,比如,在计数规则为“1个自然月内累计完成的课程”中,时间周期的限制为一个自然月,则可以根据第一触发时间所属的时间周期,从计数任务的多个时间周期中确定目标时间周期,以及目标时间周期对应的目标计数集合。

示例性的,在检测到目标事件的触发时间为2020年6月8日时,计数任务的多个时间周期为2020年中的每个自然月,则目标时间周期可以为2020年06月,并确定2020年06月的时间周期对应的目标计数集合为目标计数集合。

其中,目标计数集合中可以记录有多个触发时间,在进行计数的过程中,可以将需要计数的目标事件的第一触发时间添加至目标计数集合中,目标计数集合中触发时间的总数即为计数任务在该时间周期下的计数结果。

S102:若所述计数任务在目标时间周期下对应的目标计数集合中,不存在所述第一触发时间,则确定所述目标计数集合中距离所述第一触发时间最近的第二触发时间。

该步骤中,若目标计数集合中不存在第一触发时间,则说明未对第一触发时间进行过计数处理,可以确定目标计数集合中距离所述第一触发时间最近的第二触发时间。

示例性的,若目标时间周期下对应的目标计数集合中,包含2020-06和2020-07两个触发时间,当第一触发时间为2020-08时,可以确定2020-07为第二触发时间。

S103:基于所述第一触发时间与所述第二触发时间,对所述目标计数集合进行更新;所述目标计数集合中触发时间的数量为所述计数任务在目标时间周期下的计数结果。

该步骤中,计数规则还可以包含对时间连续性的限制。比如,在计数规则为“1个自然月内累计完成课程”时,对时间连续性的限制可以为累计计数,在该种情况下,不需要判断时间的连续性,可以直接将第一触发时间添加至目标计数集合中;在计数规则为“1个自然月内连续完成课程”时,对时间连续性的限制可以为连续计数,此时则需要判断时间的连续性,可以根据第一触发时间与第二触发时间之间的时间差,确定是否对目标事件进行计数。

具体的,可以先确定所述第一触发时间与所述第二触发时间之间的时间差;再将所述时间差与预设的时间间隔进行对比;最后再基于所述对比结果,对所述目标计数集合进行更新。

具体的,若所述时间差与所述预设的时间间隔一致,则将所述第一触发时间添加至所述目标计数集合中;

若所述时间差与所述预设的时间间隔不一致,则将所述目标计数集合中的触发时间清空,再将所述第一触发时间添加至所述目标计数集合中。

其中,若第一触发时间与第二触发时间之间的时间差与预设的时间间隔不一致,则可以确定目标事件与第二触发时间对应的事件之间不满足计数规则中要求的时间的连续性,可以将目标计数集合中的触发时间清零,再将第一触发时间添加进去;若第一触发时间与第二触发时间之间的时间差与预设的时间间隔一致,则可以确定目标事件与第二触发时间对应的事件之间满足计数规则中要求的时间的连续性,直接将第一触发时间添加至目标计数集合中。

示例性的,若第一触发时间为2020-08-05,第二触发时间为2020-08-01,两者之间的时间差为4天,若预设的时间间隔为1天,则可以确定目标事件与第二触发时间对应的事件不满足计数规则中要求的时间的连续性,此时可以将目标计数集合清空,并将2020-08-05添加至清零后的目标计数集合中;若第一触发时间为2020-08-05,第二触发时间为2020-08-04,两者之间的时间差为1天,与预设的时间间隔1天一致,则可以确定目标事件与第二触发时间对应的事件满足计数规则中要求的时间的连续性,直接将2020-08-05添加至目标计数集合中。

这样,可以确定目标事件是否符合计数规则中对时间连续性的要求,能够减少在开发不同连续性要求的计数规则中的工作量,开发效率较高。

参见图2所示,为本公开实施例提供的另一种计数方法的流程图。所述计数方法中,在检测到目标事件被触发后,可以根据计数任务对应的时间维度(时间单位)解析检测到目标事件触发的当前时间current(第一触发时间),并确定计数任务的有序集合(目标计数集合)中是否包含该current,若是则直接结束计数,若否则获取有序集合中最大的时间戳max(第二触发时间),再确定current-max的值是否与配置的时间单位(预设的时间间隔)一致,若是则将current写入到有序集合中,完成计数器的累加,若否则清空有序集合后再将current写入。

示例性的,若current为2020-06,max为2020-01,current-max的值则为5个月,若配置的时间单位为一个月,则将有序集合清空,再将2020-6写入到有序集合中,此时计数结果为1;若配置的时间单位为1年,则可以直接将2020-6写入到有序集合中,此时计数结果加1。

本公开实施例提供的计数方法,可以基于计数任务对应的时间单位,确定目标事件的第一触发时间,当计数任务在目标时间周期下对应的目标计数集合中,不存在第一触发时间的情况下,确定目标计数集合中距离第一触发时间最近的第二触发时间,并根据第一触发时间与第二触发时间对目标计数集合进行更新,进而实现对计数任务在目标时间周期下的计数结果进行更新,能够实现对任一种时间周期下的计数任务的计数,减少在开发不同时间周期的计数规则中的工作量,开发效率较高。

本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。

基于同一发明构思,本公开实施例中还提供了与计数方法对应的计数装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述计数方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。

参照图3所示,为本公开实施例提供的一种计数装置的架构示意图,所述计数装置300包括:第一确定模块310、第二确定模块320、更新模块330;其中,

第一确定模块310,用于在检测到目标事件触发时,基于计数任务对应的时间单位,确定所述目标事件的第一触发时间;

第二确定模块320,用于若所述计数任务在目标时间周期下对应的目标计数集合中,不存在所述第一触发时间,则确定所述目标计数集合中距离所述第一触发时间最近的第二触发时间;

更新模块330,用于基于所述第一触发时间与所述第二触发时间,对所述目标计数集合进行更新;所述目标计数集合中触发时间的数量为所述计数任务在目标时间周期下的计数结果。

本公开实施例提供的计数装置,可以基于计数任务对应的时间单位,确定目标事件的第一触发时间,当计数任务在目标时间周期下对应的目标计数集合中,不存在第一触发时间的情况下,确定目标计数集合中距离第一触发时间最近的第二触发时间,并根据第一触发时间与第二触发时间对目标计数集合进行更新,进而实现对计数任务在目标时间周期下的计数结果进行更新,能够实现对任一种时间周期下的计数任务的计数,减少在开发不同时间周期的计数规则中的工作量,效率较高。

一种可选的实施方式中,所述更新模块330具体用于:

确定所述第一触发时间与所述第二触发时间之间的时间差;

将所述时间差与预设的时间间隔进行对比;

基于所述对比结果,对所述目标计数集合进行更新。

一种可选的实施方式中,所述更新模块330在基于所述对比结果,对所述目标计数集合进行更新时,具体用于:

若所述时间差与所述预设的时间间隔一致,则将所述第一触发时间添加至所述目标计数集合中;

若所述时间差与所述预设的时间间隔不一致,则将所述目标计数集合中的触发时间清空,再将所述第一触发时间添加至所述目标计数集合中。

一种可选的实施方式中,所述时间单位包括以下至少一种:

天、星期、月、年。

一种可选的实施方式中,所述第一确定模块310具体用于:

基于所述计数任务对应的时间单位,对检测到所述目标事件触发的时间进行取整处理,得到所述第一触发时间。

关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。

基于同一技术构思,本公开实施例还提供了一种计算机设备。参照图4所示,为本公开实施例提供的计算机设备400的结构示意图,包括处理器401、存储器402、和总线403。其中,存储器402用于存储执行指令,包括内存4021和外部存储器4022;这里的内存4021也称内存储器,用于暂时存放处理器401中的运算数据,以及与硬盘等外部存储器4022交换的数据,处理器401通过内存4021与外部存储器4022进行数据交换,当计算机设备400运行时,处理器401与存储器402之间通过总线403通信,使得处理器401在执行以下指令:

一种可能的实施方式中,处理器401还用于执行:

基于所述第一触发时间,以及所述计数任务的多个目标计数集合对应的时间周期,确定目标时间周期以及所述目标时间周期对应的目标计数集合。

一种可能的实施方式中,处理器401执行的指令中,所述基于所述第一触发时间与所述第二触发时间,对所述目标计数集合进行更新,包括:

确定所述第一触发时间与所述第二触发时间之间的时间差;

将所述时间差与预设的时间间隔进行对比;

基于所述对比结果,对所述目标计数集合进行更新。

一种可能的实施方式中,处理器401执行的指令中,所述基于所述对比结果,对所述目标计数集合进行更新,包括:

若所述时间差与所述预设的时间间隔一致,则将所述第一触发时间添加至所述目标计数集合中;

若所述时间差与所述预设的时间间隔不一致,则将所述目标计数集合中的触发时间清空,再将所述第一触发时间添加至所述目标计数集合中。

一种可能的实施方式中,处理器401执行的指令中,所述时间单位包括以下至少一种:

天、星期、月、年。

一种可能的实施方式中,处理器401执行的指令中,所述基于计数任务对应的时间单位,确定所述目标事件的第一触发时间,包括:

基于所述计数任务对应的时间单位,对检测到所述目标事件触发的时间进行取整处理,得到所述第一触发时间。

本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的计数方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。

本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的计数方法的步骤,具体可参见上述方法实施例,在此不再赘述。

其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

相关技术
  • 服装计数方法、计数方法和装置以及电子设备
  • 一种仰卧起坐计数方法、装置、电子装置和存储介质
技术分类

06120112296661