一种在日程信息中快速定位出空闲时间的方法

文档序号:6353796阅读:160来源:国知局
专利名称:一种在日程信息中快速定位出空闲时间的方法
技术领域
本发明涉及一种处理日程信息的方法,尤其是一种在众多日程信息中快速定位一段空闲时间的方法,属于信息技术领域。
背景技术
随着信息技术的发展,人们将日常的行为活动以日程的形式编入计算机等设备, 通过控制这些日程达到提高工作效率的目的,目前,大多数商务办公系统都具有日程信息管理的功能,如office outlook等。而在企业中,对员工的日程控制有着更高的要求,假设一个具有1000人的企业, 每个员工平均对未来计划了 10个日程,管理者希望在不打扰员工工作的情况下,召开一个公司全体会议,用时30分钟,那么就要求信息系统能够快速计算出在10000个日程中是否可以在空闲时间中找到共同空闲的30分钟来用于开会。目前的信息化管理系统一般不具备这项功能,或者仅对个人排定日程信息提供一定支持,因为所述技术问题的计算量巨大,如果没有高效的处理方法,不能在合理的时间 (如1秒钟)内给出结果。

发明内容
对日程信息的完全管控需要具有对众多日程信息同时处理的快速调配方法,而面临的核心技术问题是如何在众多日程信息中快速定位出空闲时间。本发明要解决的技术问题是提供一种在众多日程信息中快速定位出所需空闲时间的方法。考虑到日程时间的连续性,不易用含有离散数据的集合表示,于是对日程时间区间做离散化处理,将日程时间区间化作单位时间点的集合;另外利用存储空间的连续性,建立一段连续的存储空间,该段连续的存储空间的长度由所有日程中的最大结束时间减去所有日程中的最小开始时间得到的差值决定,所有日程时间的任一单位时间点在该段存储空间中都有一个单元存储空间与之对应;在此结构基础上充分利用硬件系统的二进制运算能力将每一单元存储空间中存储的数据0视为该单元存储空间所对应的时间空闲,存储的数据1视为该单元存储空间所对应的时间被占用,从而将对日程信息的处理仅仅集中在一段连续的存储空间中进行,并且无需额外辅助存储空间,同时充分利用硬件系统的与、或、 非、移位这些基本运算处理数据,进而提高执行速度,以解决所述技术问题。如,需将一个 CPU字长内的所有存储空间都置1,只需直接赋值OxFFFFFFFF即可,不需要逐位对该CPU字长内的存储空间赋值,节省了 32倍的时间,一种在日程信息中快速定位出空闲时间的方法,按以下步骤工作输入步骤,用户通过输入设备将已有的日程信息、需要获取的空闲时间长度输入到系统的存储器中,所述已有的日程信息至少包括一个日程,每个日程包括一个时间段,时间段由开始时间和结束时间组成;所述需要获取的空闲时间长度是单位时间的整数倍;
创建时间线步骤,所述时间线是指存储器中一段连续存储些间,首先确定时间线的长度,其长度由所有日程中的最大结束时间减去所有日程中的最小开始时间得到的差值确定;然后确定时间线中的每一单元存储空间所对应的时间,存储空间首单元所对应的时间是上述最小开始时间,存储空间尾单元所对应的时间是上述最大结束时间,存储空间中每后一单元所对应的时间比其前一单元所对应的时间晚一个单位时间;每个单元存储空间赋为0表示该单元存储空间所对应的时间空闲,赋1表示该单元存储空间所对应的时间被占用,将创建的时间线中的所有存储空间赋为0 ;配置时间线步骡,对上述已创建好的时间线按如下方式处理从存储器中逐个取出所有日程,将时间线中对应于该日程时间的所有存储空间赋1 ;搜索步骤,在上述已配置好的时间线中搜索存储空间长度满足所述需要获取的空闲时间长度且每一单元的值均为0的连续存储空间。作为本发明的第一种改进,在所述的输入步骤中,需要获取的空闲时间长度的单位时间采用分钟;在所述的创建时间线步骤中,采用一位存储空间代表一单元的存储空间; 在所述的配置时间线步骡中,从存储器中逐个取出所有日程,采用逐位的方法将时间线中对应于该日程时间的所有存储空间置1 ;在所述的搜索步骤中采用逐位的方法在上述已配置好的时间线中搜索存储空间长度满足所述需要获取的空闲时间长度且每位的值均为0 的连续存储空间。作为本发明的第二种改进,在所述在所述的输入步骤中,需要获取的空闲时间长度的单位时间采用分钟;在所述的创建时间线步骤中,采用一位存储空间代表一单元的存储空间;在所述的配置时间线步骤中,从存储器中逐个取出所有日程,采用逐字和逐位的方法将时间线中对应于该日程时间的所有存储空间置1,所述逐字的方法是指一次性对一个 CPU字长内的所有存储空间进行相同处理,即直接赋值OxFFFFFFFF,所述逐位的方法是指分别对一个CPU字长内的存储空间进行处理;在所述的搜索步骤中采用逐字和逐位的方法在上述已配置好的时间线中搜索存储空间长度满足所述需要获取的空闲时间长度且每位的值均为是0的连续存储空间,所述逐字的方法是指一次性查看一个CPU字长内的所有存储空间的值是否均为0,即判断一个CPU字长的值是否等于0x00000000,所述逐位的方法是指分别查看该位存储空间的值是否为0。一种在日程信息中快速定位出空闲时间的装置,包括以下模块输入模块,用户通过输入设备将已有的日程信息、需要获取的空闲时间长度输入到系统的存储器中,所述已有的日程信息至少包括一个日程,每个日程包括一个时间段,时间段由开始时间和结束时间组成;所述需要获取的空闲时间长度是单位时间的整数倍;创建时间线模块,所述时间线是指存储器中一段连续存储空间,首先确定时间线的长度,其长度由所有日程中的最大结束时间减去所有日程中的最小开始时间得到的差值确定;然后确定时间线中的每一单元存储空间所对应的时间,存储空间首单元所对应的时间是上述最小开始时间,存储空间尾单元所对应的时间是上述最大结束时间,存储空间中每后一单元所对应的时间比其前一单元所对应的时间晚一个单位时间;每个单元存储空间赋为0表示该单元存储空间所对应的时间空闲,赋1表示该单元存储空间所对应的时间被占用,将创建的时间线中的所有存储空间赋为0 ;配置时间线模块,对上述已创建好的时间线按如下方式处理从存储器中逐个取出所有日程,将时间线中对应于该日程时间的所有存储空间赋1 ;搜索模块,在上述已配置好的时间线中搜索存储空间长度满足所述需要获取的空闲时间长度且每一单元的值均为0的连续存储空间。作为本发明的第一种改进,在所述的输入模块中,需要获取的空闲时间长度的单位时间采用分钟;在所述的创建时间线模块中,采用一位存储空间代表一单元的存储空间; 在所述的配置时间线模块中,从存储器中逐个取出所有日程,采用逐位的方法将时间线中对应于该日程时间的所有存储空间置1 ;在所述的搜索模块中采用逐位的方法在上述已配置好的时间线中搜索存储空间长度满足所述需要获取的空闲时间长度且每位的值均为0 的连续存储空间。作为本发明的第二种改进,在所述在所述的输入模块中,需要获取的空闲时间长度的单位时间采用分钟;在所述的创建时间线模块中,采用一位存储空间代表一单元的存储空间;在所述的配置时间线模块中,从存储器中逐个取出所有日程,采用逐字和逐位的方法将时间线中对应于该日程时间的所有存储空间置1,所述逐字的方法是指一次性对一个 CPU字长内的所有存储空间进行相同处理,即直接赋值OxFFFFFFFF,所述逐位的方法是指分别对一个CPU字长内的存储空间进行处理。;在所述的搜索模块中采用逐字和逐位的方法在上述已配置好的时间线中搜索存储空间长度满足所述需要获取的空闲时间长度且每位的值均为是0的连续存储空间,所述逐字的方法是指一次性查看一个CPU字长内的所有存储空间的值是否均为0,即判断一个CPU字长的值是否等于0x00000000,所述逐位的方法是指分别查看该位存储空间的值是否为0。下面的测试数据说明了本发明提出的在日程信息中快速定位出空闲时间的方法的第二种改进的效果硬件系统=PC机,CPU 为 Intel E8200 2. 66GHz,内存 2G ;测试数据平均每天10个日程的100个员工的10天工作日程信息中,搜索一段空闲的10分钟时间,平均需要0.0144秒。(所需的时间出现在第10天)该技术方案占用内存空间是现有技术的1/32,而其运算速度却比现有技术快 10 100倍。这说明本发明提出的在日程信息中快速定位出空闲时间的方法有效地解决了本发明欲解决的技术问题,并为解决此类更复杂的技术问题提供了参考。


下面结合附图对本发明的具体实施方式
做进一步详细的说明。图1是所述的在日程信息中快速定位出空闲时间的方法的步骤流程图;图2是所述的在日程信息中快速定位出空闲时间的方法的配置时间线步骤的优选实施方案流程图;图3是所述的在日程信息中快速定位出空闲时间大于CPU字长的搜索步骤的优选实施方案流程图;图4是所述的在日程信息中快速定位出空闲时间小于CPU字长的搜索步骤的优选实施方案流程图;图5是所述的创建时间线步骤中创建出的时间线结构示意图6是所述的配置时间线步骤中配置了一个日程后的时间线结构示意图;图7是所述的配置时间线步骤中配置完成后的时间线结构示意具体实施例方式请参见图1,这是所述的在日程信息中快速定位出空闲时间的方法的步骤流程图。作为一种在日程信息中快速定位出空闲时间的方法的优选实施方案是在基于PC 的硬件系统进行的,该硬件系统的特点是CPU字长为32位,内存2G。按下列的步骤进行输入步骤,用户通过输入设备将已有的日程信息、需要获取的空闲时间长度输入到系统的存储器中,所述已有的日程信息包括多个日程,每个日程都是一个时间段,时间段由开始时间和结束时间组成;所述的需要获取的空闲时间长度是一个整数数值,单位时间采用的是分钟;上述输入步骤中,需要获取的空闲时间长度的单位时间也可以是小时或秒。所述日程是这样的结构
权利要求
1.一种在日程信息中快速定位出空闲时间的方法,按以下步骤工作输入步骤,用户通过输入设备将已有的日程信息、需要获取的空闲时间长度输入到系统的存储器中,所述已有的日程信息至少包括一个日程,每个日程包括一个时间段,时间段由开始时间和结束时间组成;所述需要获取的空闲时间长度是单位时间的整数倍;创建时间线步骤,所述时间线是指存储器中一段连续存储空间,首先确定时间线的长度,其长度由所有日程中的最大结束时间减去所有日程中的最小开始时间得到的差值确定;然后确定时间线中的每一单元存储空间所对应的时间,存储空间首单元所对应的时间是上述最小开始时间,存储空间尾单元所对应的时间是上述最大结束时间,存储空间中每后一单元所对应的时间比其前一单元所对应的时间晚一个单位时间;每个单元存储空间赋为0表示该单元存储空间所对应的时间空闲,赋1表示该单元存储空间所对应的时间被占用,将创建的时间线中的所有存储空间赋为0 ;配置时间线步骤,对上述已创建好的时间线按如下方式处理从存储器中逐个取出所有日程,将时间线中对应于该日程时间的所有存储空间赋1 ;搜索步骤,在上述已配置好的时间线中搜索存储空间长度满足所述需要获取的空闲时间长度且每一单元的值均为0的连续存储空间。
2.如权利要求1所述的一种在日程信息中快速定位出空闲时间的方法,在所述输入步骤中,其特征在于需要获取的空闲时间长度的单位时间采用的是分钟。
3.如权利要求2所述的一种在日程信息中快速定位出空闲时间的方法,在所述创建时间线步骤中,其特征在于采用一位存储空间代表一单元存储空间。
4.如权利要求3所述的一种在日程信息中快速定位出空闲时间的方法,在所述配置时间线步骤中,其特征在于从存储器中逐个取出所有日程,采用逐位的方法将时间线中对应于该日程时间的所有存储空间置1。
5.如权利要求3所述的一种在日程信息中快速定位出空闲时间的方法,在所述配置时间线步骤中,其特征在于从存储器中逐个取出所有日程,采用逐字和逐位的方法将时间线中对应于该日程时间的所有存储空间置1 ;所述逐字的方法是指一次性对一个CPU字长内的所有存储空间进行相同处理,即直接赋值OxFFFFFFFF ;所述逐位的方法是指分别对一个 CPU字长内的存储空间进行处理。
6.如权利要求4或5所述的一种在日程信息中快速定位出空闲时间的方法,在所述搜索步骤中,其特征在于采用逐位的方法在上述已配置好的时间线中搜索存储空间长度满足所述需要获取的空闲时间长度且每位的值均为0的连续存储空间。
7.如权利要求4或5所述的一种在日程信息中快速定位出空闲时间的方法,在所述搜索步骤中,其特征在于采用逐字和逐位的方法在上述已配置好的时间线中搜索存储空间长度满足所述需要获取的空闲时间长度且每位的值均为0的连续存储空间;所述逐字的方法是指一次性查看一个CPU字长内的所有存储空间的值是否均为0,即判断一个CPU字长的值是否等于0x00000000 ;所述逐位的方法是指分别查看该位存储空间的值是否为0。
8.—种在日程信息中快速定位出空闲时间的装置,其特征是包括以下模块输入模块,用以用户将已有的日程信息、需要获取的空闲时间长度输入到系统的存储器中,所述已有的日程信息至少包括一个日程,每个日程包括一个时间段,时间段由开始时间和结束时间组成;所述的需要获取的空闲时间长度是单位时间的整数倍;创建时间线模块,所述时间线是指存储器中一段连续存储空间,首先确定时间线的长度,其长度由所有日程中的最大结束时间减去所有日程中的最小开始时间得到的差值确定;然后确定时间线中的每一单元存储空间所对应的时间,存储空间首单元所对应的时间是上述最小开始时间,存储空间尾单元所对应的时间是上述最大结束时间,存储空间中每后一单元所对应的时间比其前一单元所对应的时间晚一个单位时间;每个单元存储空间赋值为0表示该单元存储空间所对应的时间空闲,赋1表示该单元存储空间所对应的时间被占用,将创建的时间线中的所有存储空间赋为0 ;配置时间线模块,用以对上述已创建好的时间线按如下方式处置从存储器中逐个取出所有日程,将时间线中对应于该日程时间的所有存储空间赋1 ;搜索模块,用以在上述已配置好的时间线中搜索存储空间长度满足所述需要获取的空闲时间长度且每一单元的值均为0的连续存储空间。
9.如权利要求8所述的一种在日程信息中快速定位出空闲时间的装置,在所述的输入模块中,其特征在于需要获取的空闲时间长度的单位时间采用的是分钟。
10.如权利要求9所述的一种在日程信息中快速定位出空闲时间的装置,在所述创建时间线模块中,其特征在于采用一位存储空间代表一单元存储空间。
11.如权利要求10所述的一种在日程信息中快速定位出空闲时间的装置,在所述配置时间线模块中,其特征在于从存储器中逐个取出所有日程,采用逐位的方法将时间线中对应于该日程时间的所有存储空间置1。
12.如权利要求10所述的一种在日程信息中快速定位出空闲时间的装置,在所述配置时间线模块中,其特征在于从存储器中逐个取出所有日程,采用逐字和逐位的方法将时间线中对应于该日程时间的所有存储空间置1 ;所述逐字的方法是指一次性对一个CPU字长内的所有存储空间进行相同处理,即直接赋值OxFFFFFFFF ;所述逐位的方法是指分别对一个CPU字长内的存储空间进行处理。
13.如权利要求11或12所述的一种在日程信息中快速定位出空闲时间的装置,在所述搜索模块中,其特征在于采用逐位的方法在上述已配置好的时间线中搜索存储空间长度满足所述需要获取的空闲时间长度且每位的值均是0的连续存储空间。
14.如权利要求11或12所述的一种在日程信息中快速定位出空闲时间的装置,在所述搜索模块中,其特征在于采用逐字和逐位的方法在上述已配置好的时间线中搜索存储空间长度满足所述需要获取的空闲时间长度且每位的值均是0的连续存储空间;所述逐字的方法是指一次性的查看一个CPU字长内的所有存储空间的值是否均为0,即判断一个CPU字长的值是否等于0x00000000 ;所述逐位的方法是指分别查看该位存储空间的值是否为0。
全文摘要
本发明提出一种在日程信息中快速定位出空闲时间的方法。本发明充分利用硬件系统的二进制运算能力巧妙地将每一单元存储空间中存储的数据0视为该单元存储空间所对应的时间空闲,1视为该单元存储空间所对应的时间被占用,从而将对日程信息的处理仅仅集中在一段连续的存储空间中进行,并且无需额外辅助存储空间,同时充分利用硬件系统的与、或、非、移位这些基本运算处理数据进而提高执行速度,在多个人的多个日程信息中快速定位出共有的空闲时间。
文档编号G06F9/44GK102591631SQ20111002929
公开日2012年7月18日 申请日期2011年1月11日 优先权日2011年1月11日
发明者宗萌 申请人:镇江金钛软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1