电表曲线数据的查找方法、装置
技术领域
本申请涉及计算机及通信技术领域,特别涉及一种电表内数据的查找方法、装置。
背景技术
电表曲线是电表记录电能数据的一项功能,通常通过固定的时间来记录数据,周期为1分钟,15分钟,30分钟等,记录数据对于电网质量的分析具有重要意义。但是由于电表记录的数据过多,导致查找某一时间的数据十分困难。因此,找到一种能够快速查找电表中数据的方法,是亟待解决的问题。
发明内容
本申请旨在提供一种电表内数据的查找方法、装置,能够快速查找到电表中的数据。
根据本申请实施例的一个方面,提供了一种电表内数据的查找方法,包括:获取数据记录过程中的系统时间修改总次数;其中,在记录每一所述数据时,同时记录该数据记录时刻所对应的系统时间修改次数;根据所述系统时间修改总次数以及每一所述数据记录时刻所对应的所述系统时间修改次数,确定每一所述系统时间修改次数所对应的时间段;在所述每一所述系统时间修改次数所对应的时间段内,基于二分法查找目标时刻所对应的数据。
根据本申请实施例的一个方面,提供了一种电表内数据的查找装置,包括:获取模块、确定模块和查找模块。
在本申请的一些实施例中,基于前述方案,所述获取模块配置为获取数据记录过程中的系统时间修改总次数;其中,在记录每一所述数据时,同时记录该数据记录时刻所对应的系统时间修改次数;所述确定模块配置为根据所述系统时间修改总次数以及每一所述数据记录时刻所对应的所述系统时间修改次数,确定每一所述系统时间修改次数所对应的时间段;所述查找模块配置为在所述每一所述系统时间修改次数所对应的时间段内,基于二分法查找目标时刻所对应的数据。
本申请的实施例提供的技术方案可以包括以下有益效果:
在本申请的一些实施例所提供的技术方案中,通过获取数据记录过程中的系统时间修改总次数;其中,在记录每一数据时,同时记录该数据记录时刻所对应的系统时间修改次数;根据系统时间修改总次数以及每一数据记录时刻所对应的系统时间修改次数,确定每一系统时间修改次数所对应的时间段;在每一系统时间修改次数所对应的时间段内,基于二分法查找目标时刻所对应的数据。由于每一系统时间修改次数所对应的时间段内的数据是按照时间顺序排列的,因此可以使用二分法快速查找到目标时刻所对应的数据。而现有技术中当电表的系统时间修改时,尤其是系统时间向前调整时,会出现时间在前的数据出现在时间在后的数据之后,这时就不能使用二分法查找数据。因此,应用本申请中的电表内数据的查找方法能够快速查找电表中的数据。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并于说明书一起用于解释本申请的原理。
图1示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图;
图2示意性示出了根据本申请的一个实施例的电表内数据的查找方法的流程图;
图3示意性示出了根据本申请的一个实施例的基于二分法确定系统时间初始修改次数所对应的结束时刻的过程的流程图;
图4示意性示出了根据本申请的一个实施例的基于二分法确定最后一次修改次数所对应的开始时刻的过程的流程图;
图5给出了本申请的一个实施例的在每一系统时间修改次数所对应的时间段内,基于二分法查找目标时刻所对应的数据的过程的示意图;
图6示意性示出了根据本申请的一个实施例的电表内数据的查找装置的框图;
图7是根据一示例性实施例示出的一种电子装置的硬件图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/ 步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1示出了可以应用本申请实施例的技术方案的示例性系统架构100的示意图。
如图1所示,系统架构100可以包括终端设备101(终端设备可以为智能手机、平板电脑、便携式计算机、台式计算机中的一种或多种)、网络 102、服务器103和记录终端104。网络102用以在终端设备101、服务器 103和记录终端104之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线通信链路、无线通信链路等等。
应该理解,图1中的终端设备101、网络102、服务器103和记录终端 104的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备 101、网络102、服务器103和记录终端104。比如服务器103可以是多个服务器组成的服务器集群等。
在本申请的一个实施例中,记录终端104用于记录电表中的数据,可以是带有记录功能的电表。
在本申请的一个实施例中,服务器103通过获取数据记录过程中的系统时间修改总次数;其中,在记录每一数据时,同时记录该数据记录时刻所对应的系统时间修改次数;根据系统时间修改总次数以及每一数据记录时刻所对应的系统时间修改次数,确定每一系统时间修改次数所对应的时间段;在每一系统时间修改次数所对应的时间段内,基于二分法查找目标时刻所对应的数据。由于每一系统时间修改次数所对应的时间段内的数据是按照时间顺序排列的,因此可以使用二分法快速查找到目标时刻所对应的数据。而现有技术中当电表的系统时间修改时,尤其是系统时间向前调整时,会出现时间在前的数据出现在时间在后的数据之后,这时就不能使用二分法查找数据。因此,应用本申请中的电表内数据的查找方法能够快速查找电表中的数据。
需要说明的是,本申请实施例所提供的电表内数据的查找方法一般由服务器103执行,相应地,电表内数据的查找装置一般设置于服务器103中。但是,在本申请的其它实施例中,终端设备101和记录终端104也可以与服务器103具有相似的功能,从而执行本申请实施例所提供的电表内数据的查找方法。
以下对本申请实施例的技术方案的实现细节进行详细阐述:
图2示意性示出了根据本申请的一个实施例的电表内数据的查找方法的流程图,该电表内数据的查找方法的执行主体可以是服务器,比如可以是图1 中所示的服务器103。
参照图2所示,该电表内数据的查找方法至少包括步骤S210至步骤 S230,详细介绍如下:
在步骤S210中,获取数据记录过程中的系统时间修改总次数;其中,在记录每一数据时,同时记录该数据记录时刻所对应的系统时间修改次数。
在本申请的一个实施例中,可以检测系统时间发生的变化,若检测到系统时间发生变化,则判断系统时间是否呈现非正向增长;若系统时间呈现非正向增长,则系统时间修改次数增加一次。
在该实施例中,相比于遍历电表中的系统时间获取系统时间修改总次数,本申请中的方法可以直接查询得到系统时间修改总次数,提高了电表内数据查找的效率。
在本申请的一个实施例中,可以通过校时寄存器记录系统时间修改次数。
在本申请的一个实施例中,可以通过在记录电表数据的结构中增加记录系统时间修改次数的字段,使用记录系统时间修改次数的字段来记录系统时间修改次数。
在本申请的一个实施例中,可以通过在记录电表数据的结构中增加时钟计数器(Clock Chg Counter)来记录系统时间修改次数。
在本申请的一个实施例中,时钟计数器(Clock Chg Counter)在溢出时可以归零。
在本申请的一个实施例中,在数据记录的开始时刻,系统时间修改次数可以是零,也可以不是零。
在本申请的一个实施例中,系统时间修改总次数是在本次数据记录结束时系统时间修改发生的次数。
在步骤S220中,根据系统时间修改总次数以及每一数据记录时刻所对应的系统时间修改次数,确定每一系统时间修改次数所对应的时间段。
在本申请的一个实施例中,若某个时间段内记录的系统时间修改次数的值不变,则确认该时间段为该系统时间修改次数对应的时间段。
在本申请的一个实施例中,可以通过读取电表内数据中每一所述系统时间修改次数的开始时刻与结束时刻,得到每一系统时间修改次数所对应的时间段。
在本申请的一个实施例中,可以根据系统时间修改总次数以及每一数据记录时刻所对应的系统时间修改次数,确定系统时间初始修改次数所对应的结束时刻;根据系统时间初始修改次数所对应的结束时刻,依次确定每一系统时间修改次数所对应的时间段。
在该实施例中,通过从系统时间初始修改次数所对应的结束时刻来对记录数据对应的时间进行分段,可以保证记录数据对应的时间都被分成时间段,从而在时间段中查找目标时刻的数据时,不会因为遗漏时间段而导致遗漏目标时刻的数据。
在本申请的一个实施例中,每一系统时间修改次数的上一系统时间修改次数的结束时刻至每一系统时间修改次数的结束时刻之间的时间段,为每一系统时间修改次数所对应的时间段。
在本申请的一个实施例中,可以自数据记录开始时刻至数据记录时间结束时刻的时间段内,基于二分法确定系统时间初始修改次数所对应的结束时刻;确定系统时间初始修改次数所对应的结束时刻至数据记录的结束时刻之间的时间段;在系统时间初始修改次数所对应的结束时刻至数据记录的结束时刻之间的时间段内,基于二分法确定下一系统时间修改次数所对应的时间段的结束时刻。
在该实施例中,通过在系统时间初始修改次数所对应的结束时刻至数据记录的结束时刻之间的时间段内,确定下一系统时间修改次数所对应的时间段的结束时刻,相比于从数据记录时间的开始时刻至结束时刻的时间段内,确定下一系统时间修改次数所对应的时间段的结束时刻,缩短了确定下一系统时间修改次数所对应的时间段的结束时刻所在的时间范围,从而能够更快的确定下一系统时间修改次数所对应的时间段的结束时刻。
在本申请的一个实施例中,自数据记录开始时刻至系统时间初始修改次数所对应的结束时刻,为系统时间初始修改次数所对应的时间段。
在本申请的一个实施例中,基于二分法确定系统时间初始修改次数所对应的结束时刻可以包括如图3所示的步骤S310至S360:
在步骤S310中,在数据记录开始时刻至数据记录结束时刻的时间段中取中点,读取中点时刻对应的系统时间修改次数。
在步骤S320中,判断中点时刻对应的系统时间修改次数是否为系统时间初始修改次数。
在步骤S330中,若系统时间修改次数为系统时间初始修改次数,则在中点时刻至数据记结束时刻的时间段中再次取中点,直至最后取到的中点时刻的系统时间修改次数为系统时间初始修改次数的下一系统时间修改次数。
在步骤S340中,若中点时刻对应的系统时间修改次数不为系统时间初始修改次数,则判断系统时间修改次数是否为系统时间初始修改次数的下一系统时间修改次数。
在步骤S350中,若系统时间修改次数不为系统时间初始修改次数且不为系统时间初始修改次数的下一系统时间修改次数,则在数据记录开始时刻至中点时刻的时间段中再次取中点,直至最后取到的中点时刻的系统时间修改次数为系统时间初始修改次数的下一系统时间修改次数。
在本申请的一个实施例中,若第二次中点时刻对应的系统时间修改次数大于系统时间初始修改次数,则在数据记录开始时刻至第二次中点时刻的时间段中再次取中点,直至最后取到的中点时刻的系统时间修改次数为系统时间初始修改次数的下一系统时间修改次数。
在步骤S360中,若系统时间修改次数为系统时间初始修改次数的下一系统时间修改次数,则在数据记录开始时刻至中点时刻的时间段之间继续使用二分法确定系统时间初始修改次数所对应的结束时刻。
在本申请的一个实施例中,可以取数据记录开始时刻至系统时间修改次数为系统时间初始修改次数的下一系统时间修改次数的中点时刻的时间段的中点,比较数据记录开始时刻至系统时间修改次数为系统时间初始修改次数的下一系统时间修改次数的中点时刻的时间段的中点的上一时刻是否小于下一时刻,若小于,则继续取中点,直至找到某个中点的上一时刻大于下一时刻,则确定该中点是系统时间初始修改次数所对应的结束时刻。
在该实施例中,根据系统时间初始修改次数所对应的结束时刻的上一时刻大于下一时刻的特点,即每一次修改次数所对应的结束时刻为非正向增长的特点,能够确定系统时间初始修改次数所对应的结束时刻。
在本申请的一个实施例中,可以在系统时间初始修改次数所对应的结束时刻至数据记录的结束时刻之间的时间段内,基于二分法确定系统时间初始修改次数的下一系统时间修改次数所对应的时间段的结束时刻;在系统时间初始修改次数的下一系统时间修改次数所对应的结束时刻至数据记录的结束时刻之间的时间段内,基于二分法确定系统时间初始修改次数的下一系统时间修改次数所对应的时间段的结束时刻。
在该实施例中,通过在系统时间初始修改次数的下一系统时间修改次数所对应的结束时刻至数据记录的结束时刻之间的时间段内,确定下一系统时间修改次数所对应的时间段的结束时刻,相比于从数据记录时间的开始时刻至结束时刻的时间段内,确定下一系统时间修改次数所对应的时间段的结束时刻,缩短了确定下一系统时间修改次数所对应的时间段的结束时刻所在的时间范围,从而能够更快的确定下一系统时间修改次数所对应的时间段的结束时刻。
在本申请的一个实施例中,系统时间初始修改次数可以为0,系统时间初始修改次数的下一系统时间修改次数可以为1。
在本申请的一个实施例中,系统时间初始修改次数可以为1,系统时间初始修改次数的下一系统时间修改次数可以为2。
在本申请的一个实施例中,可以根据时间修改总次数以及每一数据记录时刻所对应的系统时间修改次数,确定最后一次修改次数所对应的开始时刻;根据最后一次修改次数所对应的开始时刻,依次确定每一系统时间修改次数所对应的时间段。
在本申请的一个实施例中,每一系统时间修改次数的开始时刻至每一系统时间修改次数的下一系统时间修改次数的开始时刻之间的时间段,为每一系统时间修改次数所对应的时间段。
在本申请的一个实施例中,可以自数据记录开始时刻至数据记录时间结束时刻的时间段内,基于二分法确定最后一次修改次数所对应的开始时刻;确定数据记录的开始时刻至最后一次修改次数所对应的开始时刻之间的时间段;在数据记录的开始时刻至最后一次修改次数所对应的开始时刻之间的时间段内,基于二分法确定上一次系统时间修改所对应的时间段的开始时刻。
在该实施例中,通过在在数据记录的开始时刻至最后一次修改次数所对应的开始时刻之间的时间段内,确定上一次系统时间修改所对应的时间段的开始时刻,相比于从数据记录时间的开始时刻至结束时刻的时间段内,确定上一次系统时间修改所对应的时间段的开始时刻,缩短了上一次系统时间修改所对应的时间段的开始时刻所在的时间范围,从而能够更快的上一次系统时间修改所对应的时间段的开始时刻。
在本申请的一个实施例中,自最后一次修改次数所对应的开始时刻至自数据记录结束时刻,为最后一次修改次数所对应的时间段。
在本申请的一个实施例中,基于二分法确定最后一次修改次数所对应的开始时刻可以包括如图4所示的步骤S410至S460:
在步骤S410中,在最后一次修改次数所对应的开始时刻至自数据记录结束时刻的时间段中取中点,读取中点时刻对应的系统时间修改次数。
在步骤S420中,判断中点时刻对应的系统时间修改次数是否为最后一次修改次数。
在步骤S430中,若系统时间修改次数为最后一次修改次数,则在数据记录的开始时刻至中点时刻的时间段中再次取中点,直至最后取到的中点时刻的系统时间修改次数比最后一次修改次数小1。
在步骤S440中,若中点时刻对应的系统时间修改次数不为最后一次修改次数,则判断系统时间修改次数是否比最后一次修改次数小1。
在步骤S450中,若系统时间修改次数不是最后一次修改次数,且不比最后一次修改次数小1,则在中点时刻至数据记录结束时刻至的时间段中再次取中点,直至最后取到的中点时刻的系统时间修改次数比最后一次修改次数小 1。
在本申请的一个实施例中,若第二次中点时刻对应的系统时间修改次数与最后一次修改次数之间的差大于1,则在第二次中点时刻至数据记录结束时刻的时间段中再次取中点,直至最后取到的中点时刻的系统时间修改次数比最后一次修改次数小1。
在步骤S460中,若系统时间修改次数比最后一次修改次数小1,则在中点时刻至数据记录结束时刻的时间段之间继续使用二分法确定最后一次修改次数所对应的开始时刻。
在本申请的一个实施例中,可以取系统时间修改次数比最后一次修改次数小1的中点时刻至数据记录结束时刻的时间段的中点,比较系统时间修改次数比最后一次修改次数小1的中点时刻至数据记录结束时刻的时间段的中点的上一时刻是否小于下一时刻,若小于,则继续取中点,直至找到某个中点的上一时刻大于下一时刻,则确定该中点是最后一次修改次数所对应的开始时刻。
在该实施例中,根据最后一次修改次数所对应的开始时刻的上一时刻大于下一时刻的特点,即每一次修改次数所对应的开始时刻为非正向增长的特点,能够确定最后一次修改次数所对应的开始时刻。
在本申请的一个实施例中,可以在数据记录的开始时刻至最后一次修改次数所对应的开始时刻之间的时间段内,基于二分法确定与最后一次修改次数所对应的时间段相邻的时间段的开始时刻;在数据记录的开始时刻至与最后一次修改次数所对应的时间段相邻的时间段的开始时刻时间段内,基于二分法确定上一次系统时间修改所对应的时间段的开始时刻。
在该实施例中,通过在数据记录的开始时刻至与最后一次修改次数所对应的时间段相邻的时间段的开始时刻时间段内,确定上一次系统时间修改所对应的时间段的开始时刻,相比于从数据记录时间的开始时刻至结束时刻的时间段内,确定上一次系统时间修改所对应的时间段的开始时刻,缩短了上一次系统时间修改所对应的时间段的开始时刻所在的时间范围,从而能够更快的上一次系统时间修改所对应的时间段的开始时刻。
继续参照图2,在步骤S230中,在每一系统时间修改次数所对应的时间段内,基于二分法查找目标时刻所对应的数据。
在图2所示的实施例中,通过获取数据记录过程中的系统时间修改总次数;其中,在记录每一数据时,同时记录该数据记录时刻所对应的系统时间修改次数;根据系统时间修改总次数以及每一数据记录时刻所对应的系统时间修改次数,确定每一系统时间修改次数所对应的时间段;在每一系统时间修改次数所对应的时间段内,基于二分法查找目标时刻所对应的数据。由于每一系统时间修改次数所对应的时间段内的数据是按照时间顺序排列的,因此可以使用二分法快速查找到目标时刻所对应的数据。而现有技术中当电表的系统时间修改时,尤其是系统时间向前调整时,会出现时间在前的数据出现在时间在后的数据之后,这时就不能使用二分法查找数据。因此,应用本申请中的电表内数据的查找方法能够快速查找电表中的数据。
在该实施例中,使用二分法查找最坏情况下的时间复杂度为O(logn),效率优于遍历查询,其时间复杂度为O(n)。
在本申请的一个实施例中,可以直接读取目标时刻所对应的数据。
在本申请的一个实施例中,可以基于目标时刻查找每一系统时间修改次数所对应的时间段,找到目标时刻所在的时间段;在目标时刻所在的时间段内,基于二分法查找目标时刻所对应的数据。
在本申请的一个实施例中,可以从系统时间初始修改次数所对应的时间段开始依次获取每一系统时间修改次数所对应的时间段的结束时刻;若目标时刻小于系统时间修改次数所对应的时间段的结束时刻,则确定该时间段是目标时刻所在的时间段。
在本申请的一个实施例中,步骤S230中,在每一系统时间修改次数所对应的时间段内,基于二分法查找目标时刻所对应的数据,可以包括如图5所示的步骤S510至步骤S570的过程,从系统时间初始修改次数所对应的时间段开始,依次在每一系统时间修改次数所对应的时间段内,基于二分法查找目标时刻所对应的数据。
在步骤S510中,获取本次数据记录开始时刻至数据记录结束时刻,获取数据记录开始时刻对应的系统时间初始修改次数,获取数据记录结束时刻对应的系统时间修改总次数;
在步骤S520中,使用二分法查找系统时间初始修改次数的结束时刻;
在步骤S530中,比较目标时刻是否在系统时间初始修改次数对应的时间段内;
在步骤S540中,若目标时刻在系统时间初始修改次数对应的时间段内,则使用二分法在系统时间初始修改次数对应的时间段内查找目标时刻所对应的数据;
在步骤S550中,若目标时刻不在系统时间初始修改次数对应的时间段内,则将系统时间初始修改次数加1;
在步骤S560中,判断系统时间初始修改次数是否等于系统时间修改总次数;
在步骤S570中,若系统时间初始修改次数等于系统时间修改总次数,则查找结束。
在本申请的一个实施例中,若系统时间初始修改次数小于系统时间修改总次数,则继续执行S520,使用二分法查找系统时间初始修改次数的结束时刻。
在图5所示的实施例中,通过从系统时间初始修改次数对应的时间段至系统时间修改总次数对应的时间段中查找目标时刻,可以将本次数据记录开始时刻至数据记录结束时刻之间的目标时刻全部获取,从而避免数据遗漏。
以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的电表内数据的查找方法。对于本申请装置实施例中未披露的细节,请参照本申请上述的电表内数据的查找方法的实施例。
图6示意性示出了根据本申请的一个实施例的电表内数据的查找装置的框图。
参照图6所示,根据本申请的一个实施例的电表内数据的查找装置600,包括获取模块601、确定模块602和查找模块603。
在本申请的一些实施例中,基于前述方案,所述获取模块601配置为获取数据记录过程中的系统时间修改总次数;其中,在记录每一所述数据时,同时记录该数据记录时刻所对应的系统时间修改次数;所述确定模块602配置为根据所述系统时间修改总次数以及每一所述数据记录时刻所对应的所述系统时间修改次数,确定每一所述系统时间修改次数所对应的时间段;所述查找模块 603配置为在所述每一所述系统时间修改次数所对应的时间段内,基于二分法查找目标时刻所对应的数据。
在本申请的一些实施例中,基于前述方案,确定模块602被配置为:根据系统时间修改总次数以及每一数据记录时刻所对应的系统时间修改次数,确定系统时间初始修改次数所对应的结束时刻;根据系统时间初始修改次数所对应的结束时刻,依次确定每一系统时间修改次数所对应的时间段。
在本申请的一些实施例中,基于前述方案,确定模块602被配置为:自数据记录开始时刻至数据记录结束时刻的时间段内,基于二分法确定系统时间初始修改次数所对应的结束时刻;确定系统时间初始修改次数所对应的结束时刻至数据记录的结束时刻之间的时间段;在系统时间初始修改次数所对应的结束时刻至数据记录的结束时刻之间的时间段内,基于二分法确定下一系统时间修改次数所对应的时间段的结束时刻。
在本申请的一些实施例中,基于前述方案,确定模块602被配置为:在系统时间初始修改次数所对应的结束时刻至数据记录的结束时刻之间的时间段内,基于二分法确定系统时间初始修改次数的下一系统时间修改次数所对应的时间段的结束时刻;在系统时间初始修改次数的下一系统时间修改次数所对应的结束时刻至数据记录的结束时刻之间的时间段内,基于二分法确定下一系统时间修改次数所对应的时间段的结束时刻。
在本申请的一些实施例中,基于前述方案,确定模块602被配置为:根据时间修改总次数以及每一数据记录时刻所对应的系统时间修改次数,确定最后一次修改次数所对应的开始时刻;根据最后一次修改次数所对应的开始时刻,依次确定每一系统时间修改次数所对应的时间段。
在本申请的一些实施例中,基于前述方案,确定模块602被配置为:自数据记录开始时刻至数据记录时间结束时刻的时间段内,基于二分法确定最后一次修改次数所对应的开始时刻;确定数据记录的开始时刻至最后一次修改次数所对应的开始时刻之间的时间段;在数据记录的开始时刻至最后一次修改次数所对应的开始时刻之间的时间段内,基于二分法确定上一次系统时间修改所对应的时间段的开始时刻。
在本申请的一些实施例中,基于前述方案,确定模块602被配置为:在数据记录的开始时刻至最后一次修改次数所对应的开始时刻之间的时间段内,基于二分法确定与最后一次修改次数所对应的时间段相邻的时间段的开始时刻;在数据记录的开始时刻至与最后一次修改次数所对应的时间段相邻的时间段的开始时刻时间段内,基于二分法确定上一次系统时间修改所对应的时间段的开始时刻。
在本申请的一些实施例中,基于前述方案,查找模块603被配置为:基于目标时刻查找每一系统时间修改次数所对应的时间段,找到目标时刻所在的时间段;在目标时刻所在的时间段内,基于二分法查找目标时刻所对应的数据。
在本申请的一些实施例中,基于前述方案,查找模块603被配置为:从系统时间初始修改次数所对应的时间段开始依次获取每一系统时间修改次数所对应的时间段的结束时刻;若目标时刻小于系统时间修改次数所对应的时间段的结束时刻,则确定该时间段是目标时刻所在的时间段。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图7来描述根据本申请的这种实施方式的电子设备70。图7显示的电子设备70仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图7所示,电子设备70以通用计算设备的形式表现。电子设备70的组件可以包括但不限于:上述至少一个处理单元71、上述至少一个存储单元 72、连接不同系统组件(包括存储单元72和处理单元71)的总线73、显示单元74。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元 71执行,使得所述处理单元71执行本说明书上述“实施例方法”部分中描述的根据本申请各种示例性实施方式的步骤。
存储单元72可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)721和/或高速缓存存储单元722,还可以进一步包括只读存储单元(ROM)723。
存储单元72还可以包括具有一组(至少一个)程序模块725的程序/实用工具724,这样的程序模块725包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线73可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备70也可以与一个或多个外部设备(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备70交互的设备通信,和/或与使得该电子设备70能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出 (I/O)接口75进行。并且,电子设备70还可以通过网络适配器76与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器76通过总线73与电子设备70的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备70使用其它硬件和/ 或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本申请实施方式的方法。
根据本申请一个实施例,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本申请的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本申请各种示例性实施方式的步骤。
在本申请的一些实施例中,提供了一种本申请的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++ 等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本申请示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本申请的范围仅由所附的。