一种日历视图的日程显示方法和装置转让专利

申请号 : CN201810718748.3

文献号 : CN108920244B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 程成

申请人 : 北京字节跳动网络技术有限公司

摘要 :

本发明提出了一种日历视图的日程显示方法和装置,所述方法包括:接收日程创建操作,获取所述日程创建操作对应的待显示的日程块集合;确定所述日程块集合中的每个日程块在第一方向的显示边界;确定所述日程块集合中的每个日程块在第二方向的显示边界;所述第一方向与所述第二方向相垂直;根据所述第一方向的显示边界和所述第二方向的显示边界,确定所述每个日程块的显示区域,并显示所述日程块集合中的日程块。从而,可以为每个日程块分配尽量大的显示面积,充分利用日程显示空间。

权利要求 :

1.一种日历视图的日程显示方法,其特征在于,包括:

接收日程创建操作,获取所述日程创建操作对应的待显示的日程块集合;

确定所述日程块集合中的每个日程块在第一方向的显示边界;确定所述日程块集合中的每个日程块在第二方向的显示边界;

所述第一方向与所述第二方向相垂直;

根据所述第一方向的显示边界和所述第二方向的显示边界,确定所述每个日程块的显示区域,并显示所述日程块集合中的日程块,其中,为所述日程块集合中的每个日程块在第一方向上设置相同的占位宽度,每个日程块在第二方向上的占位长度根据日程的起始和终止时间设置,对所述日程块集合中的所有日程块进行预排布,获取错位排布的预排布图样,根据错位排布后的结果确定所述日程块集合中的每个日程块在第一方向的显示边界,所述预排布包括每个日程块获得最大的展示面积,且日程块之间不重叠;

所述预排布包括:在第一方向上设置一个或一个以上的栏位,每个栏位的宽度与所述日程块的占位宽度对应;获取所有日程块在空间上不重叠排布所需的最小栏位数量M,M为正整数;将所有日程块以不重叠的方式在M个栏位中进行排布,得到所述预排布图样;

所述获取所有日程块在空间上不重叠排布所需的最小栏位数量M,包括将所有日程块沿第一方向的正向,对应N个栏位,N为所述日程块集合中的日程块数量,按照日程块的起始时间依次排布;对所有日程块按照起始时间进行排序,得到排序结果;按照排序结果依次将每个日程块作为目标日程块,对目标日程块进行沿第一方向的平移操作,使该目标日程块在与其他日程块无重叠的条件下,移动到最靠近第一方向起始位置的栏位;删除不含日程块的空栏位,得到含有日程块的栏位和栏位总数M,并以此时日程块的排布图样作为预排布图样。

2.根据权利要求1所述的日历视图的日程显示方法,其特征在于,

所述接收日程创建操作,获取所述日程创建操作对应的待显示的日程块集合,包括:根据所述日程创建操作对应的时间区间确定待显示的日程块集合;

所述确定所述日程块集合中的每个日程块在第一方向的显示边界包括:

根据所述日程块集合中包含的日程块数量和日历视图中用于日程块显示的区域的边界,确定所述日程块集合中的每个日程块在第一方向的显示边界。

3.根据权利要求1所述的日历视图的日程显示方法,其特征在于,所述确定所述日程块集合中的每个日程块在第二方向的显示边界包括:根据所述日程块集合中的每个日程块的时间区间,确定每个日程块在第二方向的显示边界。

4.根据权利要求2所述的日历视图的日程显示方法,其特征在于,所述根据所述日程块集合中包含的日程块数量和日历视图的显示区域边界,确定所述日程块集合中的每个日程块在第一方向的显示边界,包括:根据所述日程块数量,将所有对应的日程块进行错位排布;

根据错位排布后的结果确定所述日程块集合中的每个日程块在第一方向的显示边界。

5.根据权利要求4所述的日历视图的日程显示方法,其特征在于,所述根据所述日程块数量,将所有对应的日程块进行错位排布,包括:为所述日程块集合中的每个日程块在第一方向上设置相同的占位宽度,每个日程块在第二方向上的占位长度根据日程的起始和终止时间设置;

对所述日程块集合中的所有日程块进行预排布,获取错位排布的预排布图样,其中,所述预排布包括:在第一方向上设置一个或一个以上的栏位,每个栏位的宽度与所述日程块的占位宽度对应;

获取所有日程块在空间上不重叠排布所需的最小栏位数量M,M为正整数;

将所有日程块以不重叠的方式在所述M个栏位中进行排布,得到预排布图样;

所述根据错位排布后的结果确定所述日程块集合中的每个日程块在第一方向的显示边界,包括:将日历视图中用于日程块显示的区域在第一方向上均分为M个显示栏位;

按照所述预排布图样将日程块集合中的所有日程块排布于所述M个显示栏位中;

将每个日程块的占位区域对应的显示栏位在第一方向的边界作为所述日程块在第一方向的显示边界。

6.根据权利要求5所述的日历视图的日程显示方法,其特征在于,所述日程块进行预排布包括:在第一方向上设置P个初始栏位,P为正整数,每个栏位的宽度与所述日程块的占位宽度对应;

所述获取所有日程块在空间上不重叠排布所需的最小栏位数量M,包括:

对所有日程块按照起始时间进行排序,得到排序结果;

据排序结果依次将每个日程块作为目标日程块,对目标日程块进行置位操作,其中,所述置位操作包括:依次判断当前每个栏位中是否存在置位区域,所述置位区域是指第二方向对应目标日程块的起始和终止时间范围之内为空白的区域;

如果存在置位区域,则将目标日程块排布到所述置位区域;

如果当前所有栏位中均不存在置位区域,则将当前栏位总数增加1个,并将目标日程块排布到新增的栏位的置位区域;

将所有日程块均完成置位操作后得到的栏位数作为最小栏位数量M,根据日程块在置位操作中的排布得到预排布图样。

7.根据权利要求6所述的日历视图的日程显示方法,其特征在于,在所述将所有日程块以不重叠的方式在所述M个栏位中进行排布之后,还包括:占位区域扩展,其中,对于每个日程块,判断该日程块的第一方向正向一侧是否存在相邻的等高空白区域,如果存在则将所述日程块的占位区域扩展到覆盖所述等高空白区域,并据此对预排布图样进行更新;

其中,所述等高空白区域是指:第二方向对应所述日程块的起始和终止时间范围、第一方向的栏位范围与当前日程块相邻的,且没有被任何日程块占据的连续区域。

8.一种日历视图的日程显示装置,其特征在于,包括:

日程块集合确定模块,用于接收日程创建操作,获取所述日程创建操作对应的待显示的日程块集合;显示边界确定模块,用于确定所述日程块集合中创建操作对应的每个日程块在第一方向的显示边界和在第二方向的显示边界,所述第一方向与所述第二方向相垂直;

日程块显示模块,用于根据每个日程块在第一方向的显示边界和第二方向的显示边界,确定每个日程块的显示区域,并显示所述日程块集合中的日程块,其中,为所述日程块集合中的每个日程块在第一方向上设置相同的占位宽度,每个日程块在第二方向上的占位长度根据日程的起始和终止时间设置,对所述日程块集合中的所有日程块进行预排布,获取错位排布的预排布图样,根据错位排布后的结果确定所述日程块集合中的每个日程块在第一方向的显示边界,所述预排布包括每个日程块获得最大的展示面积,且日程块之间不重叠;

所述预排布包括:在第一方向上设置一个或一个以上的栏位,每个栏位的宽度与所述日程块的占位宽度对应;获取所有日程块在空间上不重叠排布所需的最小栏位数量M,M为正整数;将所有日程块以不重叠的方式在M个栏位中进行排布,得到所述预排布图样;

所述获取所有日程块在空间上不重叠排布所需的最小栏位数量M,包括将所有日程块沿第一方向的正向,对应N个栏位,N为所述日程块集合中的日程块数量,按照日程块的起始时间依次排布;对所有日程块按照起始时间进行排序,得到排序结果;按照排序结果依次将每个日程块作为目标日程块,对目标日程块进行沿第一方向的平移操作,使该目标日程块在与其他日程块无重叠的条件下,移动到最靠近第一方向起始位置的栏位;删除不含日程块的空栏位,得到含有日程块的栏位和栏位总数M,并以此时日程块的排布图样作为预排布图样。

9.一种非临时性计算机可读存储介质,其上存储有可执行指令,所述可执行指令在处理器上运行时,实现根据权利要求1-7中任意一项所述的方法。

说明书 :

一种日历视图的日程显示方法和装置

技术领域

[0001] 本发明涉及计算机应用,特别是涉及一种日历视图的日程显示方法和装置。

背景技术

[0002] 随着个人计算机和便携式终端的发展和普及,越来越多的用户将日历软件作为个人日程的管理方式。而随着工作和生活节奏的加快和对时间的日益珍视,经常会出现在同一时间区间对应存在多个日程的情况。在日历软件中,如何对多个有时间重叠的日程进行展示,是主要的技术问题之一。由于屏幕的尺寸有限,需要在相对较小的画面中显示较多的日程内容时,传统的日历软件经常会遇到各种困难。
[0003] 例如,日程块叠加使用户无法阅读日程信息,或者日程块挤在一起,只能展示很少的日程信息,严重影响使用体验。对于移动终端(例如移动电话)上的日历软件,由于屏幕相对较小,以上问题尤为突出。

发明内容

[0004] 本发明旨在至少在一定程度上解决上述相关技术中的技术问题之一。提供一种能充分利用显示空间,更好地展示多个日程的日历视图的日程显示方法和装置。
[0005] 为了达到上述目的,根据本发明第一方面的实施例提出了一种日历视图的日程显示方法,其包括:
[0006] 接收日程创建操作,获取所述日程创建操作对应的待显示的日程块集合;
[0007] 确定所述日程块集合中的每个日程块在第一方向的显示边界;确定所述日程块集合中的每个日程块在第二方向的显示边界;
[0008] 所述第一方向与所述第二方向相垂直;
[0009] 根据所述第一方向的显示边界和所述第二方向的显示边界,确定所述每个日程块的显示区域,并显示所述日程块集合中的日程块。
[0010] 在一些实施例中,所述接收日程创建操作,获取所述日程创建操作对应的待显示的日程块集合,包括:
[0011] 根据所述日程创建操作对应的时间区间确定待显示的日程块集合;
[0012] 所述确定所述日程块集合中的每个日程块在第一方向的显示边界包括:
[0013] 根据所述日程块集合中包含的日程块数量和日历视图中用于日程块显示的区域的边界,确定所述日程块集合中的每个日程块在第一方向的显示边界。
[0014] 在一些实施例中,所述确定所述日程块集合中的每个日程块在第二方向的显示边界包括:
[0015] 根据所述日程块集合中的每个日程块的时间区间,确定每个日程块在第二方向的显示边界。
[0016] 在一些实施例中,所述根据所述日程块集合中包含的日程块数量和日历视图的显示区域边界,确定所述日程块集合中的每个日程块在第一方向的显示边界,包括:
[0017] 根据所述日程块数量,将所有对应的日程块进行错位排布;
[0018] 根据错位排布后的结果确定所述日程块集合中的每个日程块在第一方向的显示边界。
[0019] 在一些实施例中,所述根据所述日程块数量,将所有对应的日程块进行错位排布,包括:
[0020] 为所述日程块集合中的每个日程块在第一方向上设置相同的占位宽度,每个日程块在第二方向上的占位长度根据日程的起始和终止时间设置;
[0021] 对所述日程块集合中的所有日程块进行预排布,获取错位排布的预排布图样,其中,所述预排布包括:
[0022] 在第一方向上设置一个或一个以上的栏位,每个栏位的宽度与所述日程块的占位宽度对应;
[0023] 获取所有日程块在空间上不重叠排布所需的最小栏位数量M,M为正整数;
[0024] 将所有日程块以不重叠的方式在所述M个栏位中进行排布,得到预排布图样;
[0025] 所述根据错位排布后的结果确定所述日程块集合中的每个日程块在第一方向的显示边界,包括:
[0026] 将日历视图中用于日程块显示的区域在第一方向上均分为M个显示栏位;
[0027] 按照所述预排布图样将日程块集合中的所有日程块排布于所述M个显示栏位中;
[0028] 将每个日程块的占位区域对应的显示栏位在第一方向的边界作为所述日程块在第一方向的显示边界。
[0029] 在一些实施例中,所述预排布包括:
[0030] 在第一方向上设置N个栏位,N为所述日程块集合中的日程块数量,每个栏位的宽度与所述日程块的占位宽度对应;
[0031] 所述获取所有日程块在空间上不重叠排布所需的最小栏位数量M,包括:将所有日程块沿第一方向的正向,对应所述N个栏位,按照日程块的起始时间依次排布;
[0032] 对所有日程块按照起始时间进行排序,得到排序结果;
[0033] 按照排序结果依次将每个日程块作为目标日程块,对目标日程块进行沿第一方向的平移操作,使该目标日程块在与其他日程块无重叠的条件下,移动到最靠近第一方向起始位置的栏位;
[0034] 删除不含日程块的空栏位,得到含有日程块的栏位和栏位总数M,并以此时日程块的排序图样作为预排布图样。
[0035] 在一些实施例中,所述对日程块进行预排布包括:
[0036] 在第一方向上设置P个初始栏位,P为正整数,每个栏位的宽度与所述日程块的占位宽度对应;
[0037] 所述获取所有日程块在空间上不重叠排布所需的最小栏位数量M,包括:
[0038] 对所有日程块按照起始时间进行排序,得到排序结果;据排序结果依次将每个日程块作为目标日程块,对目标日程块进行置位操作,其中,依次判断当前每个栏位中是否存在置位区域,所述置位区域是指第二方向对应目标日程块的起始和终止时间范围之内为空白的区域;如果存在置位区域,则将目标日程块排布到所述置位区域;如果当前所有栏位中均不存在置位区域,则将当前栏位总数增加1个,并将目标日程块排布到新增的栏位的置位区域;以及将所有日程块均完成置位操作后得到的栏位数作为最小栏位数量M,根据日程块在置位操作中的排布得到预排布图样。
[0039] 在一些实施例中,将所有日程块以不重叠的方式在所述M个栏位中进行预排布后,还包括:占位区域扩展,其中,对于每个日程块,判断该日程块的第一方向正向一侧是否存在相邻的等高空白区域,如果存在则将所述日程块的占位区域扩展到覆盖所述等高空白区域,并据此对预排布图样进行更新;其中,所述等高空白区域是指:第二方向对应所述日程块的起始和终止时间范围,第一方向的栏位范围与当前日程块相邻的,且没有被任何日程块占据的连续区域。
[0040] 应用本发明的日历视图的日程显示方法,可以在有限的日历显示区域内,保证日程块之间不重叠,且通过按照最小所需栏位数进行分栏显示,可为每个日程块分配相对更大的显示面积,便于日程具体内容的直观展示。同时,可避免日程块的堆挤,实现屏幕空间的高效利用,特别是在手机等小屏幕显示装置上也能获得良好的显示效果。此外,根据本发明的日程块排序图样中,日程块错落有序,高效美观,也能给用户带来阅读上的方便和用眼上的舒适。
[0041] 根据本发明第二方面的实施例提供了一种日历视图的日程显示装置,其包括:日程块集合确定模块,用于接收日程创建操作,获取所述日程创建操作对应的待显示的日程块集合;显示边界确定模块,用于确定所述日程块集合中创建操作对应的每个日程块在第一方向的显示边界和在第二方向的显示边界,所述第一方向与所述第二方向相垂直;
[0042] 日程块显示模块,用于根据每个日程块在第一方向的显示边界和第二方向的显示边界,确定每个日程块的显示区域,并显示所述日程块集合中的日程块。
[0043] 应用本发明的日历视图的日程显示装置,可以在有限的日历显示区域内,保证日程块之间不重叠,且通过按照最小所需栏位数进行分栏显示,可为每个日程块分配相对更大的显示面积,便于日程具体内容的直观展示。同时,可避免日程块的堆挤,实现屏幕空间的高效利用,特别是在手机等小屏幕显示装置上也能获得良好的显示效果。此外,根据本发明的日程块排序图样中,日程块错落有序,高效美观,也能给用户带来阅读上的方便和用眼上的舒适。
[0044] 为了实现上述目的,本发明第三方面实施例提供了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现根据本发明第一方面所述的方法。
[0045] 根据本发明第三方面的非临时性计算机可读存储介质具有与根据本发明第一和第二方面的日历视图的日程显示方法和装置类似的有益效果,在此不再赘述。

附图说明

[0046] 本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0047] 图1A是根据本发明实施例的日历视图的日程显示方法的流程示意图;
[0048] 图1B是根据本发明实施例的日程块进行错位排布,并根据错位排布结果进行确定第一方向和第二方向显示边界的流程示意图;
[0049] 图2是根据本发明实施例的日程块设置过程示意图;
[0050] 图3是根据本发明一个实施例的日程块预排布的流程示意图;
[0051] 图4A到4C是根据本发明实施例的日程块平移过程示意图;
[0052] 图5是根据本发明另一个实施例的日程块预排布的流程示意图;
[0053] 图6A到6C是根据本发明实施例的日程块置位过程示意图;
[0054] 图7是根据本发明实施例的日程块占位区域扩展的过程示意图;
[0055] 图8是根据本发明实施例的日程块显示的场景示意图;
[0056] 图9是根据本发明实施例的日历视图的日程显示装置的结构框图。

具体实施方式

[0057] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
[0058] 下面参考附图对本发明实施例的方法和装置进行详细的说明。
[0059] 本发明的主要思路包括:在不同的日程块对应的显示区域之间没有重叠的前提下,充分的利用日历视图显示区域,给每个日程块尽可能大的展示区域。为了使时间上有重叠的日程块在空间上不重叠,将日历视图的显示栏位进行扩展,设置多个栏位,并且求出满足所有日程块不重叠展示所需的最小栏位数,根据所述最小栏位数划分日历视图的显示区域,进行日程块的显示。下面结合附图对本发明的具体实施方式进行详细描述。
[0060] 参见图1A,图1A是根据本发明实施例的日历视图的日程显示方法的流程示意图。其中,日历视图的日程显示方法包括步骤S100到S300。
[0061] 在步骤S100,接收日程创建操作,获取所述日程创建操作对应的待显示的日程块集合。
[0062] 其中,可以根据所述日程创建操作对应的时间区间确定待显示的日程块集合。例如,创建单日日程,待显示的日程块的集合是包括该日期的日程;创建的是周日程,则待显示的日程块的集合可能是包括该星期的日程等。
[0063] 在步骤S200,确定所述日程块集合中的每个日程块在第一方向的显示边界;确定所述日程块集合中的每个日程块在第二方向的显示边界;所述第一方向与所述第二方向相垂直。
[0064] 其中,确定第一方向的显示边界和第二方向的显示边界的顺序并无特殊限定。
[0065] 可以根据所述日程块集合中包含的日程块数量和日历视图中用于日程块显示的区域的边界,确定所述日程块集合中的每个日程块在第一方向的显示边界。根据所述日程块集合中的每个日程块的时间区间,确定每个日程块在第二方向的显示边界。
[0066] 在步骤S300,根据所述第一方向的显示边界和所述第二方向的显示边界,确定所述每个日程块的显示区域,并显示所述日程块集合中的日程块。
[0067] 确定第一方向的显示边界和第二方向的显示边界是决定日程块显示结果的重要过程,下面对步骤S200的具体实现形式进行进一步的详细说明。
[0068] 根据所述日程块集合中包含的日程块数量和日历视图的显示区域边界,确定所述日程块集合中的每个日程块在第一方向的显示边界时,可以根据所述日程块数量,将所有对应的日程块进行错位排布,根据错位排布后的结果确定所述日程块集合中的每个日程块在第一方向的显示边界。所谓错位排布,是指将所有日程块进行不重叠的排布,也就是说,日历视图显示时,其中任何两个日程块的显示区域都是没有重叠的。图1B是根据本发明实施例的将所有对应的日程块进行错位排布,并根据错位排布结果进行确定第一方向和第二方向显示边界的流程示意图。其中,可以包括如下步骤S210到S230。
[0069] S210,为所述日程块集合中的每个日程块在第一方向上设置相同的占位宽度,每个日程块在第二方向上的占位长度根据日程的起始和终止时间设置。
[0070] 其中,根据指定时间区间内的日程数N设置对应的N个日程块,N为正整数,每个日程块在第一方向上的占位宽度相同,在第二方向上的占位根据日程的起始和终止时间确定。
[0071] 通常,第一方向和第二方向相互垂直,从而对日程显示区域进行标示。第二方向用于标示日程的时间单位,例如可以是年、月、日、小时等。在一些对时间更为细分的实施例中,第二方向也可以以半小时、15分钟,10分钟,乃至1分钟等为时间单位。第一方向用于对时间上可能重叠日程块的进行空间位置的划分。可以以栏位为单位,每个栏位对应一个日程块在第一方向的占位。
[0072] 指定时间区间可以根据日历软件的工作状态确定,例如,可以设置为所有日程覆盖的时间范围,当前显示区域能展示的时间范围,或者用户指定的时间范围等。
[0073] 例如,参见图2,图2是根据本发明一个实施例的日程块设置示意图。其中,横向作为第一方向设置了5个栏位。纵向作为第二方向,每个分隔时间段为半小时,共包含5个日程块11到15。显然,第一方向和第二方向的方向是可以交换的。图2示出的日历视图是横向较长的显示装置为例,例如常见的PC显示器,以及手机横屏时的长宽比例均近似于此。
[0074] 要说明的是,对于任意方式的长宽比例,例如手机竖屏使用时的长宽比例,日历的日程显示区域的整体形状可以根据显示屏幕的长宽比进行自适应调整,日历的日程显示区域占整个日历显示画面的比例以及相对位置也可以根据需要进行调整。本发明的方法是关于日程显示区域内部的日程块的排布,所有关于日程显示区域的形状和尺寸变化以及日程显示区域的相对位置变化等情况,均不影响本发明的应用,也不会超出本发明的保护范围。
[0075] S220,对所述日程块集合中的所有日程块进行预排布,获取错位排布的预排布图样。
[0076] 其中,所述预排布包括:在第一方向上设置一个或一个以上的栏位,每个栏位的宽度与所述日程块的占位宽度对应;获取所有日程块在空间上不重叠排布所需的最小栏位数量M,M为正整数;将所有日程块以不重叠的方式在所述M个栏位中进行排布,得到预排布图样。
[0077] S230,根据错位排布后的结果确定所述日程块集合中的每个日程块在第一方向的显示边界。
[0078] 所述根据错位排布后的结果确定所述日程块集合中的每个日程块在第一方向的显示边界,包括:
[0079] 将日历视图中用于日程块显示的区域在第一方向上均分为M个显示栏位;
[0080] 按照所述预排布图样将日程块集合中的所有日程块排布于所述M个显示栏位中;
[0081] 将每个日程块的占位区域对应的显示栏位在第一方向的边界作为所述日程块在第一方向的显示边界。
[0082] 步骤S220中,预排布的目的之一是使每个日程块获得尽量大的展示面积,并且日程块之间是不重叠的。由于日程块在第二方向上的范围是由起止时间决定的,日程确定后即无法更改。因此,要获得较大的展示面积,可通过使用最少的栏位数将所有日程块进行不重叠的排布来实现。下面给出两种具体的日程块预排布实现形式,要说明的是,本领域技术人员在本发明思路范围内,也可能设计出其它的最小栏位排布的具体实现形式,或者在以下具体实现形式基础上变形得到其它具体的预排布实现形式,这些都将落入本发明的保护范围。
[0083] 参见图3,图3是根据本发明一个实施例的日程块预排布的流程示意图。其中,对日程块进行预排布包括步骤S211到S214。
[0084] 在步骤S211,在第一方向上设置N个栏位,N为所述日程块集合中的日程块数量,每个栏位的宽度与所述日程块的占位宽度对应。获取所有日程块在空间上不重叠排布所需的最小栏位数量M则由以下步骤S212到S213实现。
[0085] 在步骤S212,将所有日程块沿第一方向的正向,对应所述N个栏位,按照日程块的起始时间依次排布,对所有日程块按照起始时间进行排序,得到排序结果。
[0086] 按照一般的用户阅读习惯和审美习惯,如果日程块是错落的,那么按照从左到右方向由高向低排布会比较便于阅读和符合审美要求。因此,在一些实施例中,例如图2的实施例中,第一方向的正向可以设置为显示屏幕中从左到右的方向,当然也可以设置为相反的方向。此时,日程1到日程5的起始时间从10:00到11:30也是依次延后的。
[0087] 对于起始时间相同的日程块,可以随机排序,也可以按照一定顺序排序。例如,可以将结束时间在后(即持续时间较长的日程)排序在前,如此,可以对长的日程块优先排布。也可以将结束时间在前(即持续时间较短的日程)排序在前,获得另一种形式的有序排布。
[0088] 在步骤S213,按照排序结果依次将每个日程块作为目标日程块,对目标日程块进行沿第一方向的平移操作,使该目标日程块在与其他日程块无重叠的条件下,移动到最靠近第一方向起始位置的栏位。
[0089] 参见图4A、4B和4C,图4A到4C是根据本发明一个实施例的日程块平移过程示意图。日程块的排序结果是从日程1到日程5。当目标日程块是日程块11(日程1)时,日程1已经在最靠近起始位置,无需移动。当目标日程块是日程块12(日程2)时,对于日程2,由于第1栏中第二方向相应位置区间(10:30到11:00)已经被日程1占位,所以不能移动到第1栏,也不移动。当目标日程块是日程块13(日程3)时,日程3与第1栏已有的日程1无重叠,因此可以平移到第1栏。从而得到图4A所示的排布。当目标日程块是日程块14(日程4)时,对于日程4,第1栏的第二方向相应位置区间(11:30到13:00)的区域已经被占位,所以不能移动到第1栏,而放入第2栏不会重叠,因此,日程4平移到第2栏,从而得到图4B所示的排布。当目标日程块是日程块15(日程5)时,第1栏和第2栏的第二方向相应位置区间(11:30-12:00)的相应位置均已经被占位,因此日程5平移到第3栏,从而得到图4C所示的排布。
[0090] 在步骤S214,删除不含日程块的空栏位,得到含有日程块的栏位和栏位总数M,并以此时日程块的排序图样作为预排布图样。
[0091] 没有日程的区域不需要显示,因此,通过删除空栏位,仅显示有日程块的栏位,可为每个含有日程的栏位提供更多的展示面积。例如,图4C中,含有日程块的栏位有3栏,栏位总数M=3,预排布图样可以为图4C中前3栏所示的图样。
[0092] 参见图5,图是根据本发明另一个实施例的日程块预排布的流程示意图。其中,对日程块进行预排布包括步骤S221到S224。
[0093] 在步骤S221,在第一方向上设置P个初始栏位,P为正整数,每个栏位的宽度与所述日程块的占位宽度对应。例如,初始栏位的数量P可以设置为1,随着日程块的增加,而增加栏位数。或者P也可以根据当前所有日程块中,对应最多日程的时间区间来设置,将该时间区间对应的日程的数量作为初始栏位的数量P。因为,此时,显然至少P个栏位才能实现不重叠的排布。
[0094] 在步骤S22,对所有日程块按照起始时间进行排序,得到排序结果。对于起始时间相同的日程块,可以随机排序,也可以按照一定顺序排序。例如,可以将结束时间在后(即持续时间较长的日程)排序在前,如此,可以对长的日程块优先排布。也可以将结束时间在前(即持续时间较短的日程)排序在前,获得另一种形式的有序排布。
[0095] 在步骤S223,据排序结果依次将每个日程块作为目标日程块,对目标日程块进行置位操作,其中,依次判断当前每个栏位中是否存在置位区域,所述置位区域是指第二方向对应目标日程块的起始和终止时间范围之内为空白的区域;如果存在置位区域,则将目标日程块排布到所述置位区域;如果当前所有栏位中均不存在目标日程块的置位区域,意味着当前栏位数不够将已有日程进行不重叠排布。此时,将当前栏位总数增加1个,并将目标日程块排布到新增的栏位中的置位区域。
[0096] 参见图6A,6B和6C,图6A到6C是根据本发明一个实施例的日程块置位过程示意图。待排布的同样是图2中从日程1到日程5排序的5个日程块11到15。初始栏位数可设置为1个。
当目标日程块是日程块11(日程1)时,由于尚未有日程块被排布,所有位置为空,第1栏存在置位区域,将日程块11排布到第1栏。当目标日程块是日程块12(日程2)时,第1栏中10:30-
11:00已经被日程块11占据,第1栏不存在置位区域,则增加一个栏位,并将日程块12排布到第2栏。对于目标日程块13(日程3),第1栏存在置位区域,将日程块13排布到第1栏。当目标日程块是日程块14(日程4)时,第1栏中11:30-13:00已经被日程块13占据,第1栏不存在置位区域,第2栏存在置位区域,故将日程块14排布到第2栏。对于目标日程块15(日程5),由于第1栏和第2栏的11:30-12:00区间都已经被占据,均不存在置位区域,故需要增加一个栏位,将日程块15排布到第3栏。
[0097] 在步骤S224,将所有日程块均完成置位操作后得到的栏位数作为最小栏位数量M,根据日程块在置位操作中的排布得到预排布图样。
[0098] 例如,图6C中,所有日程块均完成置位操作后得到的栏位数为3栏,作为最小栏位数量M=3,预排布图样则如图6C中所示。
[0099] 在一些实施例中,根据日程块时间段分布的不同,得到的预排布图样的M栏中可能还会存在一些空白区域。这些空白区域可以加以利用,用来为相邻日程块提供更大的展示面积,从而进一步显示日程细节。因此,在将所有日程块以不重叠的方式在所述M个栏位中进行预排布后,可以进一步对部分日程块的占位区域进行扩展。
[0100] 具体来说,对于每个日程块,可以判断该日程块的第一方向正向一侧是否存在相邻的等高空白区域,如果存在则将所述日程块的占位区域扩展到覆盖所述等高空白区域,并据此对预排布图样进行更新。其中,所述等高空白区域是指:第二方向对应所述日程块的起始和终止时间范围,第一方向的栏位范围与当前日程块相邻的,且没有被任何日程块占据的连续区域。
[0101] 参见图7,图7是根据本发明实施例的日程块占位区域扩展的过程示意图。由于,图6C中在日程块12(日程2)的右侧,第3栏的对应时间区间10:30-11:30是空白的,即存在等高空白区域。因此,将日程块12扩展到第3栏,覆盖相应第二方向10:30-11:30对应的区域。得到更新的预排布图样,如图7所示。
[0102] 在步骤S300,在日历视图上显示日程块,其中,将日历视图中用于日程块显示的区域按照第一方向均分为M个栏位,按照预排布图样对日程块进行显示。
[0103] 图8是根据本发明实施例的日程块显示的场景示意图。对于图7所示的日程块占位区域扩展后的预排布图样,其中,栏位数M=3,将用于日程块显示的区域均分为3栏,每个日程块的宽度与每栏的宽度相同,并按照图7中的图样进行显示。
[0104] 要说明的是,日程块的创建和预排布的过程对于用户来说是不可见的。图2、图4A-4C以及图6A-6C等,只是为了便于理解本发明的方法而示出的过程示意图,并不是日历显示方法中显示装置所呈现的图像。每次接收到新的日程事件后,可以在后台创建新的日程块,并执行一次日程块预排布的步骤,最终按照预排布图样对日程块进行显示。
[0105] 应用本发明的日历视图的日程显示方法,可以在有限的日历显示区域内,保证日程块之间不重叠,且通过按照最小所需栏位数进行分栏显示,可为每个日程块分配相对更大的显示面积,便于日程具体内容的直观展示。同时,可避免日程块的堆挤,实现屏幕空间的高效利用,特别是在手机等小屏幕显示装置上也能获得良好的显示效果。此外,根据本发明的日程块排序图样中,日程块错落有序,高效美观,也能给用户带来阅读上的方便和用眼上的舒适。
[0106] 为了更好的实现本发明的日历视图的日程显示方法,本发明第二方面的实施例还提供了一种日历视图的日程显示装置。参见图9,图9是根据本发明实施例的日历视图的日程显示装置的结构框图。其中,所述日历视图的日程显示装置100包括日程块集合确定模块110,显示边界确定模块120和日程块显示模块130。
[0107] 日程块集合确定模块110,用于接收日程创建操作,获取所述日程创建操作对应的待显示的日程块集合。
[0108] 显示边界确定模块120,用于确定所述日程块集合中创建操作对应的每个日程块在第一方向的显示边界和在第二方向的显示边界,所述第一方向与所述第二方向相垂直。
[0109] 日程块显示模块130,用于根据每个日程块在第一方向的显示边界和第二方向的显示边界,确定每个日程块的显示区域,并显示所述日程块集合中的日程块。
[0110] 其中,所述显示边界确定模块可包括:日程块设定子模块,预排布子模块,第一边界确定子模块和第二边界确定子模块。
[0111] 日程块设定子模块,用于为所述日程块集合中的每个日程块在第一方向上设置相同的占位宽度,以及根据日程的起始和终止时间为每个日程块设置在第二方向上的占位长度;
[0112] 预排布子模块,用于对所述日程块集合中的所有日程块进行预排布,获取错位排布的预排布图样,其中,所述预排布包括:在第一方向上设置一个或一个以上的栏位,每个栏位的宽度与所述日程块的占位宽度对应;获取所有日程块在空间上不重叠排布所需的最小栏位数量M,M为正整数;将所有日程块以不重叠的方式在所述M个栏位中进行排布,得到预排布图样;
[0113] 第一边界确定子模块,用于根据所述预排布子模块获取的预排布图样确定所述日程块集合中的所有日程块在第一方向的显示边界;其中,将日历视图中用于日程块显示的区域在第一方向上均分为M个显示栏位;按照所述预排布图样将日程块集合中的所有日程块排布于所述M个显示栏位中;将每个日程块的占位区域对应的显示栏位在第一方向的边界作为所述日程块在第一方向的显示边界;
[0114] 第二边界确定子模块,用于根据所述预排布子模块获取的预排布图样确定所述日程块集合中的所有日程块在第二方向的显示边界。
[0115] 所述预排布子模块可以有不同的具体实现形式。在一些实施例中,所述预排布模块120可包括:第1栏位设置单元,第一排序单元,平移操作单元和第一预排布图样生成单元。
[0116] 第1栏位设置单元用于在第一方向上设置N个栏位,N为所述日程块集合中的日程块数量,每个栏位的宽度与所述日程块的占位宽度对应;以及将所有日程块沿第一方向的正向,对应所述N个栏位,按照日程块的起始时间依次排布。
[0117] 第一排序单元用于对所有日程块按照起始时间进行排序,得到排序结果。
[0118] 平移操作单元用于按照排序结果依次将每个日程块作为目标日程块,对目标日程块进行沿第一方向的平移操作,使该目标日程块在与其他日程块无重叠的条件下,移动到最靠近第一方向起始位置的栏位。
[0119] 第一预排布图样生成单元用于删除不含日程块的空栏位,得到含有日程块的栏位和栏位总数M,并以此时日程块的排序图样作为预排布图样。
[0120] 在一些实施例中,所述预排布模块120可包括第二栏位设置单元,第二排序单元,置位操作单元,第二预排布图样生成单元。
[0121] 第二栏位设置单元用于在第一方向上设置P个初始栏位,P为正整数,每个栏位的宽度与所述日程块的占位宽度对应。
[0122] 第二排序单元用于对所有日程块按照起始时间进行排序,得到排序结果。
[0123] 置位操作单元用于据排序结果依次将每个日程块作为目标日程块,对目标日程块进行置位操作,其中,依次判断当前每个栏位中是否存在置位区域,所述置位区域是指第二方向对应目标日程块的起始和终止时间范围之内为空白的区域;如果存在置位区域,则将目标日程块排布到所述置位区域;如果当前所有栏位中均不存在置位区域,则将当前栏位总数增加1个,并将目标日程块排布到新增的栏位的置位区域。
[0124] 第二预排布图样生成单元用于将所有日程块均完成置位操作后得到的栏位数作为最小栏位数量M,根据日程块在置位操作中的排布得到预排布图样。
[0125] 在一些实施例中,根据日程块时间段分布的不同,得到的预排布图样的M栏中可能还会存在一些空白区域。这些空白区域可以加以利用,用来为相邻日程块提供更大的展示面积,从而进一步显示日程细节。因此,在将所有日程块以不重叠的方式在所述M个栏位中进行预排布后,可以进一步对部分日程块的占位区域进行扩展。
[0126] 具体来说,对于每个日程块,可以判断该日程块的第一方向正向一侧是否存在相邻的等高空白区域,如果存在则将所述日程块的占位区域扩展到覆盖所述等高空白区域,并据此对预排布图样进行更新。其中,所述等高空白区域是指:第二方向对应所述日程块的起始和终止时间范围,第一方向的栏位范围与当前日程块相邻的,且没有被任何日程块占据的连续区域。
[0127] 本发明系统中的各个模块和单元的功能和作用的实现过程具体详情可参见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关未尽之处可参见方法实施例的部分说明。
[0128] 应用本发明的日历视图的日程显示装置,可以在有限的日历显示区域内,保证日程块之间不重叠,且通过按照最小所需栏位数进行分栏显示,可为每个日程块分配相对更大的显示面积,便于日程具体内容的直观展示。同时,可避免日程块的堆挤,实现屏幕空间的高效利用,特别是在手机等小屏幕显示装置上也能获得良好的显示效果。此外,根据本发明的日程块排序图样中,日程块错落有序,高效美观,也能给用户带来阅读上的方便和用眼上的舒适。
[0129] 本发明第三方面的实施例提供了一种非临时性计算机可读存储介质,其上存储有可执行指令,所述可执行指令在处理器上运行时,实现根据本发明第一方面实施例所述的日历视图的日程显示方法。
[0130] 本发明第四方面的实施例提供了一种计算机程序产品,当所述计算机程序产品中的指令由处理器执行时,实现根据本发明第一方面实施例所述的日历视图的日程显示方法。所述计算机程序产品可以是用于PC机或者移动终端的应用程序。
[0131] 本发明第五方面实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现根据本发明第一方面所述的日历视图的日程显示方法。
[0132] 根据本发明第三到五方面的非临时性计算机可读存储介质,计算机程序产品和计算机设备,可以参照根据本发明第一方面实施例具体描述的内容实现,并具有与根据本发明第一方面的日历视图的日程显示方法类似的有益效果,在此不再赘述。
[0133] 需要说明的是,在本说明书的描述中,流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
[0134] 在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0135] 应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一个实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0136] 本技术领域的普通技术人员可以理解实现上述实施例的方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0137] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0138] 此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,例如两个,三个等,除非另有明确具体的限定。
[0139] 尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。