首页> 中国专利> 一种农历日期选择方法及相关设备

一种农历日期选择方法及相关设备

摘要

本发明公开了一种农历日期选择方法及相关设备,所述方法包括:获取后台配置的日期选择模式、禁用方法和初始日期数组;根据初始日期数组生成公历日期数组,根据所述公历日期数组计算对应的农历日期数组,合并所述公历日期数组与所述农历日期数组,生成二维日期数组;根据所述日期选择模式、所述禁用方法、所述初始日期数组和所述二维日期数组对所述日期选择面板进行渲染;获取用户在所述日期选择面板上的鼠标事件,确定用户选择的日期,完成日期选择。本发明通过在日期选择器上显示农历信息和节日信息,使得用户在进行日期选择时能准确地获取对应的农历日期,通过鼠标滚轮对日期选择面板进行切换,拓展了用户的操作方式,提升了用户的使用体验。

著录项

  • 公开/公告号CN116627295A

    专利类型发明专利

  • 公开/公告日2023-08-22

    原文格式PDF

  • 申请/专利权人 深圳市酷开网络科技股份有限公司;

    申请/专利号CN202310588782.4

  • 发明设计人 郭舒婷;

    申请日2023-05-23

  • 分类号G06F3/0483(2013.01);G06F9/451(2018.01);

  • 代理机构深圳市君胜知识产权代理事务所(普通合伙) 44268;

  • 代理人陈专

  • 地址 518000 广东省深圳市前海深港合作区南山街道临海大道59号海运中心口岸楼3楼E363

  • 入库时间 2024-01-17 01:23:59

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-09-08

    实质审查的生效 IPC(主分类):G06F 3/0483 专利申请号:2023105887824 申请日:20230523

    实质审查的生效

  • 2023-08-22

    公开

    发明专利申请公布

说明书

技术领域

本发明涉及计算机软件技术领域,尤其涉及一种农历日期选择方法、系统、终端及计算机可读存储介质。

背景技术

农历是我国几千年来传承下来的传统历法,农历属于阴阳合历,是根据月相的变化周期,每一次月相朔望变化为一个月,参考太阳回归年为一年的长度,并加入二十四节气与设置闰月以使平均历年与回归年相适应。农历信息对农业生产和日常生活有着密切的联系,因此现在人们对农历信息的关注也越来越高。

日期选择器是目前常用的一种控件,用来帮助用户快速高效的录入日期信息,常用于网页或各种形式的表格。但现有的日期选择器展示单一,只显示公历日期,没有农历日期和公历农历节日信息的显示。且现有的日期选择器只能通过点击头部按钮进行月份和年份的切换,也只能通过传入一定的日期范围来禁用一段日期范围,使得用户在选择农历日期时使用很不方便。

因此,现有技术还有待于改进和发展。

发明内容

本发明的主要目的在于提供一种农历日期选择方法、系统、终端及计算机可读存储介质,旨在解决现有技术中用户无法在日期选择器查看到农历信息,无法通过除了点击的方式对月份和年份进行切换,无法使用更多的禁用日期方法对日期选择器进行操作,使得用户在选择农历日期时使用很不方便的问题。

为实现上述目的,本发明提供一种农历日期选择方法,所述农历日期选择方法包括如下步骤:

接收用户对日期选择框的点击操作指令,根据所述点击操作指令弹出日期选择面板,获取后台配置的日期选择模式、禁用方法和初始日期数组;

根据所述初始日期数组生成公历日期数组,根据所述公历日期数组计算对应的农历日期数组,合并所述公历日期数组与所述农历日期数组,生成二维日期数组;

根据所述日期选择模式、所述禁用方法、所述初始日期数组和所述二维日期数组对所述日期选择面板进行渲染;

获取用户在所述日期选择面板上的鼠标事件,确定用户选择的日期,完成日期选择。

可选地,所述的农历日期选择方法,其中,所述日期选择模式包括单选模式、日期范围选择模式和多日期单选模式;

所述禁用方法包括禁用日期方法和禁用日期数组;

当所述日期选择模式为单选模式或多日期单选模式时,所述初始日期数组包括一个初始日期对象;

当所述日期选择模式为日期范围选择模式时,所述初始日期数组包括两个初始日期对象。

可选地,所述的农历日期选择方法,其中,所述根据所述初始日期数组生成公历日期数组,具体包括:

解析所述初始日期数组,获得所述初始日期数组中的年份变量、月份变量和日期变量;

将所述年份变量和所述月份变量作为当前年份和当前月份,将所述日期变量作为默认选中日期,从所述当前月份的第一天开始生成公历日期对象,直至所述当前月份结束,其中,每个所述公历日期对象都包括年份变量、月份变量和日期变量;

整合所有所述公历日期对象,生成公历日期数组。

可选地,所述的农历日期选择方法,其中,所述根据所述公历日期数组计算对应的农历日期数组,具体包括:

获取所述公历日期数组中的每个所述公历日期对象,计算所述公历日期对象与基准农历日期的相差天数;

根据所述相差天数与农历对照表进行计算,获得农历年份和确定农历年份后的剩余天数;

根据所述剩余天数得到农历月份和农历日期,将所述农历年份、所述农历月份和所述农历日期结合,形成农历日期对象,直至计算完所有所述公历日期对象对应的农历日期对象;

整合所有所述农历日期对象,生成农历日期数组。

可选地,所述的农历日期选择方法,其中,所述合并所述公历日期数组与所述农历日期数组,生成二维日期数组,具体包括:

合并所述公历日期数组和所述农历日期数组,将所述公历日期对象和农历日期对象一一对应合并,生成二维日期数组;

计算当前月份的第一天在一星期中所在的位置,根据所述位置对所述二维日期数组的开头进行补充;

判断所述二维日期数组中是否有预设数量的二维对象,若所述二维日期数组中没有预设数量的二维对象,对所述二维日期数组的末尾进行补充,获得符合所述预设数量的二维对象的二维日期数组。

可选地,所述的农历日期选择方法,其中,所述根据所述日期选择模式、所述禁用方法、所述初始日期数组和所述二维日期数组对所述日期选择面板进行渲染,具体包括:

将所述二维日期数组填充入所述日期选择面板;

根据所述禁用方法,禁用所述禁用日期方法或所述禁用日期数组对应的日期;

若所述日期选择模式为单选模式或多日期单选模式,将所述初始日期数组对应的日期进行高亮显示,将高亮显示的日期作为用户的选中日期;

若所述日期选择模式为日期范围选择模式,将所述初始日期数组中的第一个初始日期对象作为开始日期,第二个初始日期对象作为结束日期,将所述开始日期和所述结束日期之间的所有日期进行高亮显示,将高亮显示的日期作为用户的选中日期;

根据所述二维日期数组中的公历日期数组获得对应的公历节日,根据所述二维日期数组中的农历日期数组获得对应的农历节日、天干地支年号和属相,将所述选中日期、公历节日、农历节日、天干地支年号和属相显示在日期选择面板上,完成日期选择面板的渲染。

可选地,所述的农历日期选择方法,其中,所述获取用户在所述日期选择面板上的鼠标事件,确定用户选择的日期,完成日期选择,具体包括:

所述鼠标事件包括滚轮事件、点击事件;

获取用户在所述日期选择面板上的点击事件或滚轮事件,对日期选择面板进行翻页操作,并重新计算和渲染所述日期选择面板;

获取用户在所述日期选择面板上的点击事件,确定用户选择的日期,将所述用户选择的日期进行高亮显示,完成日期选择。

此外,为实现上述目的,本发明还提供一种农历日期选择系统,其中,所述农历日期选择系统包括:

配置获取模块,用于接收用户对日期选择框的点击操作指令,根据所述点击操作指令弹出日期选择面板,获取后台配置的日期选择模式、禁用方法和初始日期数组;

日期计算模块,用于根据所述初始日期数组生成公历日期数组,根据所述公历日期数组计算对应的农历日期数组,合并所述公历日期数组与所述农历日期数组,生成二维日期数组;

面板渲染模块,用于根据所述日期选择模式、所述禁用方法、所述初始日期数组和所述二维日期数组对所述日期选择面板进行渲染;

日期选择模块,用于获取用户在所述日期选择面板上的鼠标事件,确定用户选择的日期,完成日期选择。

此外,为实现上述目的,本发明还提供一种终端,其中,所述终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的农历日期选择程序,所述农历日期选择程序被所述处理器执行时实现如上所述的农历日期选择方法的步骤。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有农历日期选择程序,所述农历日期选择程序被处理器执行时实现如上所述的农历日期选择方法的步骤。

本发明中,获取后台配置的日期选择模式、禁用方法和初始日期数组;根据初始日期数组生成公历日期数组,根据所述公历日期数组计算对应的农历日期数组,合并所述公历日期数组与所述农历日期数组,生成二维日期数组;根据所述日期选择模式、所述禁用方法、所述初始日期数组和所述二维日期数组对所述日期选择面板进行渲染;获取用户在所述日期选择面板上的鼠标事件,确定用户选择的日期,完成日期选择。本发明通过在日期选择器上显示农历信息和节日信息,使得用户在进行日期选择时能准确地获取对应的农历日期,通过鼠标滚轮对日期选择面板进行切换,拓展了用户的操作方式,提升了用户的使用体验。

附图说明

图1是本发明农历日期选择方法的较佳实施例的流程图;

图2是本发明农历日期选择方法的较佳实施例中计算公历日期数组的流程示意图;

图3是本发明农历日期选择方法的较佳实施例中计算农历日期数组的流程示意图;

图4是本发明农历日期选择方法的较佳实施例中计算二维日期数组的流程示意图;

图5是本发明农历日期选择方法的较佳实施例中单选模式的界面示意图;

图6是本发明农历日期选择方法的较佳实施例中日期范围选择模式的界面示意图;

图7是本发明农历日期选择系统的较佳实施例的原理示意图;

图8为本发明终端的较佳实施例的运行环境示意图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明较佳实施例所述的农历日期选择方法,如图1所示,所述农历日期选择方法包括以下步骤:

步骤S10、接收用户对日期选择框的点击操作指令,根据所述点击操作指令弹出日期选择面板,获取后台配置的日期选择模式、禁用方法和初始日期数组。

具体地,当需要用户选择日期时,在界面上设置有日期选择框供用户进行点击操作,日期选择器接收用户对日期选择框的点击操作指令,并根据所述点击操作指令弹出日期选择面板,所述日期选择器同时获取技术人员在后台根据需求配置好的日期选择模式、禁用方法和初始日期数组。

进一步地,所述日期选择模式包括单选模式、日期范围选择模式和多日期单选模式;所述禁用方法包括禁用日期方法和禁用日期数组;当所述日期选择模式为单选模式或多日期单选模式时,所述初始日期数组包括一个初始日期对象;当所述日期选择模式为日期范围选择模式时,所述初始日期数组包括两个初始日期对象。

具体地,所述单选模式为用户仅能在日期选择器上选择一个日期;所述日期范围选择模式为用户可在日期选择器上选择一段日期范围,用户第一次选择的日期作为开始日期,第二次选择的日期作为结束日期,将开始日期、结束日期和两者之间的日期作为用户选择的日期范围;所述多日期单选模式为用户可对多个日期进行单选,用户选择了几次即为选择了几个日期,例如:在当前月份为5月的日期选择器中,用户可以选择5月1日、5月5日、5月10日和5月28日作为选中的日期。

所述禁用方法为禁用用户选择当天日期的方法,具体包括禁用日期方法和禁用日期数组,所述禁用日期方法和禁用日期数组是技术人员根据具体使用情况在后台配置的方法和日期数组,用于将所述日期选择器上的日期进行禁用操作,所述禁用操作具体为将日期设置为不可点击选中的状态。

所述初始日期数组是技术人员根据所述日期选择模式设置的默认日期数组,当技术人员配置的日期选择模式为单选模式或多日期单选模式时,所述初始日期数组中仅能输入一个初始日期对象,当技术人员配置的日期选择模式为日期范围选择模式时,所述初始日期数组中必须输入两个初始日期对象,作为日期范围的开始时期和结束日期。技术人员可以根据实际需求来设计对应的日期选择器,例如将可选日期限制在一个星期内,让用户进行单日期选择,使得日期选择器能够更加灵活多变,从而更好地根据实际需求获得用户选择的日期,节省了提示用户日期选择规则的时间,从而提高了日期选择的效率。

在本发明的一个优选实施例中,所述日期选择模式、禁用方法可以在日期选择器中可配置的options属性(options属性是一个对象)中进行配置,通过设置options属性中的disabled方法(禁用日期方法)、disabledDate数组(禁用日期数组)和dateType(日期选择模式)完成配置。其中,所述dateType可配置为single(单选模式)、range(日期范围选择模式)和single-multiple(多日期单选模式);所述初始日期数组通过对后台的value数组传入初始日期对象进行配置。

步骤S20、根据所述初始日期数组生成公历日期数组,根据所述公历日期数组计算对应的农历日期数组,合并所述公历日期数组与所述农历日期数组,生成二维日期数组。

具体地,日期选择器根据所述初始日期数组确定当前年月,并生成当前月份对应的公历日期对象,形成公历日期数组,再根据公历日期数组计算对应的农历日期数组,再将所述公历日期数组和农历日期数据进行合并,生成二维日期数组,并以预设的补充规则对所述二维日期数组进行补充。

进一步地,所述根据所述初始日期数组生成公历日期数组,具体包括:

解析所述初始日期数组,获得所述初始日期数组中的年份变量、月份变量和日期变量;将所述年份变量和所述月份变量作为当前年份和当前月份,将所述日期变量作为默认选中日期,从所述当前月份的第一天开始生成公历日期对象,直至所述当前月份结束,其中,每个所述公历日期对象都包括年份变量、月份变量和日期变量;整合所有所述公历日期对象,生成公历日期数组。

具体地,如图2所示,日期选择器在获取初始日期数组后,先判断初始日期数组中是否含有初始日期对象,若不含有初始日期对象,则获取当天日期,将所述当天日期作为初始日期对象并进行后续的解析操作;若含有初始日期对象,所述日期选择器解析所述初始日期数组,并进行变量赋值。在进行变量赋值之前,判断所述日期选择模式是否为日期范围选择模式,若所述日期选择模式不是日期范围选择模式,则此时所述初始日期数组仅有一个初始日期对象,将初始日期对象中的数据对应赋值给年份变量、月份变量和日期变量;若所述日期选择模式是日期范围选择模式,则此时所述初始日期数组中含有两个初始日期对象,将第一个初始日期对象中的数据对应赋值给年份变量、月份变量和日期变量。

在获取到所述初始日期数组的年份变量、月份变量和日期变量后,将所述年份变量和所述月份变量作为当前年份和当前月份,将所述日期变量作为默认选中日期,根据所述当前月份,从当前月份的第一天(当前月份的1号)开始生成公历日期对象,从当前月份的第一天按顺序生成至当前月份的最后一天,每个生成的公历日期对象都包括对应的年份变量、月份变量和日期变量,再将所有公历日期对象进行合并,生成公历日期数组。

例如,若技术人员在后台配置的日期选择模式为日期范围选择模式,初始日期数组为[‘2023-05-04’,‘2023-05-7’],日期选择器判断出所述初始日期数组中含有初始日期对象且所述日期选择模式为日期范围选择模式,则对初始日期数组中的‘2023-05-04’进行变量赋值,得出年份变量为“2023年”、月份变量为“5月”和日期变量为“4日”,将年份变量和月份变量作为当前的年月,即当前年月为2023年5月,将日期变量作为默认选中日期,即默认选择日期为4日,生成2023年5月1日至2023年5月31日的公历日期对象,合并所述公历日期对象,生成2023年5月对应的公历日期数组。

进一步地,所述根据所述公历日期数组计算对应的农历日期数组,具体包括:

获取所述公历日期数组中的每个所述公历日期对象,计算所述公历日期对象与基准农历日期的相差天数;根据所述相差天数与农历对照表进行计算,获得农历年份和确定农历年份后的剩余天数;根据所述剩余天数得到农历月份和农历日期,将所述农历年份、所述农历月份和所述农历日期结合,形成农历日期对象,直至计算完所有所述公历日期对象对应的农历日期对象;整合所有所述农历日期对象,生成农历日期数组。

具体地,如图3所述,获取公历日期数组中的每个公历日期对象,计算所述公历日期对象与基准农历日期(1949.1.29,1949.1.29为农历1949年正月初一)的相差天数,再根据所述相差天数与农历对照表进行计算,获得当前农历年份,再根据所述当前农历年份从所述农历对照表中获得对应5位16进制数,根据所述5位16进制数得到当前农历年份的月份信息,然后根据所述月份信息计算正在进行处理的公历日期对象与所述当前年份的正月初一之间的剩余天数,再根据所述剩余天数计算得出当前的农历月份和农历日期,将所述当前农历年份、农历月份和农历日期进行结合,形成农历日期对象,根据上述步骤对所述公历日期数组中的每一个公历日期对象进行计算,获得对应的农历日期对象,再将所有农历日期对象进行整合,获得农历日期数组。

其中,所述农历对照表是由多个5位16进制数组成的数组,其中每一项(5位16进制数)包含了每一个农历年(从农历1949年开始)的农历月份信息,所述农历月份信息包括了闰月大小、农历年中每个农历月份的天数和当前农历年中闰月的月份。

进一步地,在本发明的一个优选实施例中,具体的农历计算方法为:根据相差天数与农历对照表进行循环计算,设置一计数器i,计数器i的初始值为0,根据农历对照表计算出从农历1949年开始每个农历年包含的天数,用相差天数减去农历1949年包含的天数,若此时相差天数大于0,则计数器i加1,再用相差天数减去农历1950年,再次进行判断相差天数是否大于零,以此类推,知道相差天数小于0,获取此时计数器i的数值,用1949加i即可获得当前的农历年份,根据当前农历年份(例如农历2023年)在农历对照表上获得对应的5位16进制数,农历2023年对应的5位16进制数是“0x05b52”,其中,第一位数字(0)表示闰月的大小,0为闰月只有29天,1为闰月有30天;第2-4位数字(5b5)分别对应1-12月的天数,将“5b5”转换为二进制就是“0101 1011 0101”,0表示当月有29天,1表示当月有30天;第五位数字(2)表示当年闰月的月份,这里表示闰二月。

进一步地,所述合并所述公历日期数组与所述农历日期数组,生成二维日期数组,具体包括:

合并所述公历日期数组和所述农历日期数组,将所述公历日期对象和农历日期对象一一对应合并,生成二维日期数组;再计算当前月份的第一天在一星期中所在的位置,根据所述位置对所述二维日期数组的开头进行补充;最后判断所述二维日期数组中是否有预设数量的二维对象,若所述二维日期数组中没有预设数量的二维对象,对所述二维日期数组的末尾进行补充,获得符合所述预设数量的二维对象的二维日期数组。

具体地,如图4所示,将所述公历日期数组和农历日期数组进行合并,并且按照公历日期对象和农历日期对象一一对应进行合并,生成一个二维日期数组,此时二维日期数组为当前月份的完整日期表,其中的每个二维对象既包含公历日期,又包含公历日期对应的农历日期,再获取当前月份的第一天(即当前月份的1号),计算1号在一星期中所在的位置(即计算1号为星期几),再根据所述位置在二维日期数组的开头进行补充,采用除7取余的方式得到需往前补充的天数,补充的内容为当前月份上个月月末的日期和对应的农历日期。再对进行补充过的二维日期数组进行判断,判断所述二维日期数组内是否有预设数量的二维对象,若没有,则对所述二维日期数组的末尾进行补充,用预设数量减去现有的二维对象数量得到需要补充的天数,补充的内容为当前月份下个月月初的日期和对应的农历日期,经过补充后获得一个含有预设数量的二维对象的二维日期数组。通过对二维日期数组的拓展,使得用户能够在查看当前月份的日期信息的同时也能看到与当前月份相邻的月份信息,使得用户可以预先知道上一个月末或下一个月初的日期信息,帮助用户更好地进行日期选择,使得日期选择器在进行月份切换时更加流畅,从而提升了用户的使用体验。

例如,在本发明的一个优选实施例中,所述预设数量为42,以当前月份为2023年5月为例,在获得了2023年5月的二维日期数组后,计算得出2023年5月1日为星期一,则在所述二维日期数组的开头补充1个二维对象,具体的二维对象为[[‘2023-4-30’,‘农历三月十一’]],此时补充后的二维日期数组仅有32个二维对象,所以在所述二维日期数组的末尾补充10个二维对象,具体的二维对象为[[‘2023-6-1’,‘农历四月十四’],[‘2023-6-2’,‘农历四月十五’],...,[‘2023-6-9’,‘农历四月廿二’],[‘2023-6-10’,‘农历四月廿三’]],此时经过补充后的二维日期数组共有42个二维对象,所述二维日期数组为六行七列的二维数组。

步骤S30、根据所述日期选择模式、所述禁用方法、所述初始日期数组和所述二维日期数组对所述日期选择面板进行渲染。

具体地,在获取了二维日期数组后,需要对日期选择面板进行渲染,将二维日期数组显示在日期选择面板上,供用户进行日期的选择,根据所述日期选择模式将初始日期数组解析出的默认选中日期进行高亮显示,根据所述禁用方法将被禁用的日期设为不可鼠标点击选取,将所述二维日期数组呈六行七列的二维数组日表展示给用户,并附有选中日期、农历日期、节日信息和天干地支年号等信息。

进一步地,所述根据所述日期选择模式、所述禁用方法、所述初始日期数组和所述二维日期数组对所述日期选择面板进行渲染,具体包括:

将所述二维日期数组填充入所述日期选择面板;再根据所述禁用方法,禁用所述禁用日期方法或所述禁用日期数组对应的日期,;若所述日期选择模式为单选模式或多日期单选模式,将所述初始日期数组对应的日期进行高亮显示,将高亮显示的日期作为用户的选中日期;若所述日期选择模式为日期范围选择模式,将所述初始日期数组中的第一个初始日期对象作为开始日期,第二个初始日期对象作为结束日期,将所述开始日期、所述结束日期和之间的所有日期进行高亮显示,将高亮显示的日期范围作为用户的选中日期;根据所述二维日期数组中的公历日期数组获得对应的公历节日,根据所述二维日期数组中的农历日期数组获得对应的农历节日、天干地支年号和属相,将所述选中日期、公历节日、农历节日、天干地支年号和属相显示在日期选择面板上,完成日期选择面板的渲染。

具体地,先将二维日期数组填充入所述日期面板中,填充后的日期面板中的日期呈六行七列展示,展示有公历日期和对应的农历日期,根据禁用方法禁用对应的日期,将禁用的日期设置为不可点击选中的日期,样式呈灰色。日期选择器中的每一个日期都会依次执行所述禁用日期方法,将日期作为参数输入,返回一个布尔值,当布尔值为true时表示日期被禁用,当布尔值为false时表示日期没被禁用;例如,技术人员在后台配置的禁用日期方法为禁用大于5月10日和小于5月2日的日期,将日期选择器中符合禁用方法的日期设置成不可点击选中的日期。再将当前月份以外的日期设置成灰色样式,但不进行禁用操作,用户可以通过对当前月份以外的日期进行点击操作,当用户点击当前月份以外的日期时,日期选择面板会切换至点击的日期对应的月份并选中点击的日期,并对选中的日期进行高亮显示,用户可以通过点击上月月初和下月月末的日期进行跨月份选择,使得用户在进行跨月份的日期选择时无需来回切换月份,方便了用户进行跨月份的日期选择,从而使得用户的使用体验更好。

如果日期选择模式是单选模式或多日期单选模式,此时初始日期数组中只有一个初始日期对象,则将所述初始日期对象对应的日期进行高亮显示,并将高亮显示的日期作为用户的选中日期;如果日期选择模式为日期范围选择模式,此时初始日期数组中含有两个初始日期对象,将第一个初始日期对象作为开始日期,第二个初始日期对象作为结束日期,将所述开始日期、结束日期和之间的所有日期进行高亮显示,并将高亮显示的日期范围作为用户的选中日期。

根据所述二维日期数组中的公历日期数组获得对应的公历节日,例如公历5月1日为劳动节、5月4日为青年节等,根据农历日期数组获得对应的农历节日,例如农历五月五日为端午节、农历八月十五为中秋节等,将公历节日和农历节日替换农历日期进行展示;根据农历日期数组计算天干地支年号和属相,具体为:根据农历年位数得到天干,根据农历年除12取余算出地支和属相;再将所述选中日期展示在日期选择表的上方,将公历年份信息和月份信息进行显示,并在旁边显示对应的天干地支年号和属相,完成日期选择面板的渲染。此时日期选择面板中显示有农历日期、公历节日、农历节日、天干地支年号和属相,从而使得用户可以根据农历信息来进行日期的选择,强化了农历信息与日期选择的联系。

进一步地,若用户在日期范围选择模式下选择了跨农历年份的日期范围,则天干地支号的单独显示也会相应地更改为天干地支号的范围显示。

步骤S40、获取用户在所述日期选择面板上的鼠标事件,确定用户选择的日期,完成日期选择。

具体地,用户可以通过在日期选择面板上对日期进行点击,选择需要的日期,并根据日期选择模式将用户点击的日期进行高亮显示,并获取用户选中的日期数据,完成日期的选择。

进一步地,所述获取用户在所述日期选择面板上的鼠标事件,确定用户选择的日期,完成日期选择,具体包括:

所述鼠标事件包括滚轮事件、点击事件;获取用户在所述日期选择面板上的点击事件或滚轮事件,对日期选择面板进行翻页操作,并重新计算和渲染所述日期选择面板;获取用户在所述日期选择面板上的点击事件,确定用户选择的日期,将所述用户选择的日期进行高亮显示,完成日期选择。

具体地,用户可以在日期选择面板的日期选择部分上进行鼠标滚轮操作,以对日期选择面板进行翻页操作,具体地向上滑动滚轮为向上翻页,即显示上个月份,向下滑动滚轮为向下翻页,显示下个月份;也可以通过点击设置好的按钮进行翻页,实现月份的切换;此时日期选择器根据用户的翻页操作,确定新的当前月份,并重复上述步骤,对日期选择面板的二维日期数组进行重新计算并渲染所述日期选择面板;用户可以点击日期选择面板上的具体日期,将用户选中的日期返回给日期选择器,完成日期的选择。本发明通过滚轮进行对日期选择器进行月份切换,拓展了用户在进行日期选择时的操作方式,使得用户在进行月份切换时更加自由,从而提升了用户的使用体验。

进一步地,所述用户可以点击日期选择面板上的具体日期,来完成日期的选择,具体为:当日期选择模式为单选模式时,用户点击具体日期时会将当前点击的具体日期进行高亮显示,并作为选中日期显示在日期选择面板上;若用户再次点击某个具体日期时,则取消上次点击形成的高亮显示,并将新点击的具体日期高亮显示,再将新点击的具体日期作为选中日期替换显示在日期选择面板上。

当日期选择模式为多日期单选模式时,用户点击具体日期时会将当前点击的具体日期进行高亮显示,并作为选中日期显示在日期选择面板上;若用户再次点击某个具体日期时,不取消上次点击形成的高亮显示,同时将两次点击的具体日期高亮显示,并将新点击的具体日期和上次点击的具体日期同时作为选中日期显示在日期选择面板上,用“,”进行分隔,表示两天为单独选中,当用户点击两次以上时也同理,在此不做赘述。

当日期选择模式为日期范围选择模式时,用户第一次点击具体日期时会将当前点击的具体日期进行高亮显示,此时日期选择面板上并不显示选中日期,当用户第二次点击具体日期时,将第二次点击的具体日期进行高亮显示,并同时将第一次点击和第二次点击的具体日期之间的日期全部进行高亮显示(第一次点击和第二次点击的具体日期并没有先后之分,如果第二次点击的具体日期小于第一次点击的具体日期,则将第二次点击的具体日期作为开始日期,第一次点击的具体日期作为结束日期),并将第一次点击和第二次点击的具体日期显示在日期选择面板上,用“至”连接,表示一个范围。

进一步地,在本发明的另一个优选实施例中,在用户进行日期范围选择的过程中,第二次点击的具体日期必须在第一次点击之后,若第二次点击的具体日期在第一次点击的具体日期之前,则将第二次点击的具体日期作为新的第一次点击,等待用户进行新的第二次点击操作。

如图5所示,图5为本发明一个优选实施例中日期选择模式为单选模式的日期选择面板的界面示意图,其中画框的部分为被禁用方法禁用的日期,呈灰色不可选中的样式。

如图6所示,图6为本发明一个优选实施例中日期选择模式为日期范围选择模式的日期选择面板的界面示意图,其中5.9日到5.17日已被高亮显示,表示用户选择的日期范围是2023.5.9-2023.5.17。

进一步地,如图7所示,基于上述农历日期选择方法,本发明还相应提供了一种农历日期选择系统,其中,所述农历日期选择系统包括:

配置获取模块51,用于接收用户对日期选择框的点击操作指令,根据所述点击操作指令弹出日期选择面板,获取后台配置的日期选择模式、禁用方法和初始日期数组;

日期计算模块52,用于根据所述初始日期数组生成公历日期数组,根据所述公历日期数组计算对应的农历日期数组,合并所述公历日期数组与所述农历日期数组,生成二维日期数组;

面板渲染模块53,用于根据所述日期选择模式、所述禁用方法、所述初始日期数组和所述二维日期数组对所述日期选择面板进行渲染;

日期选择模块54,用于获取用户在所述日期选择面板上的鼠标事件,确定用户选择的日期,完成日期选择。

进一步地,如图8所示,基于上述农历日期选择方法和系统,本发明还相应提供了一种终端,所述终端包括处理器10、存储器20及显示器30。图8仅示出了终端的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

所述存储器20在一些实施例中可以是所述终端的内部存储单元,例如终端的硬盘或内存。所述存储器20在另一些实施例中也可以是所述终端的外部存储设备,例如所述终端上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器20还可以既包括所述终端的内部存储单元也包括外部存储设备。所述存储器20用于存储安装于所述终端的应用软件及各类数据,例如所述安装终端的程序代码等。所述存储器20还可以用于暂时地存储已经输出或者将要输出的数据。在一实施例中,存储器20上存储有农历日期选择程序40,该农历日期选择程序40可被处理器10所执行,从而实现本申请中农历日期选择方法。

所述处理器10在一些实施例中可以是一个中央处理器(Central ProcessingUnit,CPU),微处理器或其他数据处理芯片,用于运行所述存储器20中存储的程序代码或处理数据,例如执行所述农历日期选择方法等。

所述显示器30在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。所述显示器30用于显示在所述终端的信息以及用于显示可视化的用户界面。所述终端的部件10-30通过系统总线相互通信。

在一实施例中,当处理器10执行所述存储器20中农历日期选择程序40时实现以下步骤:

接收用户对日期选择框的点击操作指令,根据所述点击操作指令弹出日期选择面板,获取后台配置的日期选择模式、禁用方法和初始日期数组;

根据所述初始日期数组生成公历日期数组,根据所述公历日期数组计算对应的农历日期数组,合并所述公历日期数组与所述农历日期数组,生成二维日期数组;

根据所述日期选择模式、所述禁用方法、所述初始日期数组和所述二维日期数组对所述日期选择面板进行渲染;

获取用户在所述日期选择面板上的鼠标事件,确定用户选择的日期,完成日期选择。

其中,所述日期选择模式包括单选模式、日期范围选择模式和多日期单选模式;

所述禁用方法包括禁用日期方法和禁用日期数组;

当所述日期选择模式为单选模式或多日期单选模式时,所述初始日期数组包括一个初始日期对象;

当所述日期选择模式为日期范围选择模式时,所述初始日期数组包括两个初始日期对象。

其中,所述根据所述初始日期数组生成公历日期数组,具体包括:

解析所述初始日期数组,获得所述初始日期数组中的年份变量、月份变量和日期变量;

将所述年份变量和所述月份变量作为当前年份和当前月份,将所述日期变量作为默认选中日期,从所述当前月份的第一天开始生成公历日期对象,直至所述当前月份结束,其中,每个所述公历日期对象都包括年份变量、月份变量和日期变量;

整合所有所述公历日期对象,生成公历日期数组。

其中,所述根据所述公历日期数组计算对应的农历日期数组,具体包括:

获取所述公历日期数组中的每个所述公历日期对象,计算所述公历日期对象与基准农历日期的相差天数;

根据所述相差天数与农历对照表进行计算,获得农历年份和确定农历年份后的剩余天数;

根据所述剩余天数得到农历月份和农历日期,将所述农历年份、所述农历月份和所述农历日期结合,形成农历日期对象,直至计算完所有所述公历日期对象对应的农历日期对象;

整合所有所述农历日期对象,生成农历日期数组。

其中,所述合并所述公历日期数组与所述农历日期数组,生成二维日期数组,具体包括:

合并所述公历日期数组和所述农历日期数组,将所述公历日期对象和农历日期对象一一对应合并,生成二维日期数组;

计算当前月份的第一天在一星期中所在的位置,根据所述位置对所述二维日期数组的开头进行补充;

判断所述二维日期数组中是否有预设数量的二维对象,若所述二维日期数组中没有预设数量的二维对象,对所述二维日期数组的末尾进行补充,获得符合所述预设数量的二维对象的二维日期数组。

其中,所述根据所述日期选择模式、所述禁用方法、所述初始日期数组和所述二维日期数组对所述日期选择面板进行渲染,具体包括:

将所述二维日期数组填充入所述日期选择面板;

根据所述禁用方法,禁用所述禁用日期方法或所述禁用日期数组对应的日期;

若所述日期选择模式为单选模式或多日期单选模式,将所述初始日期数组对应的日期进行高亮显示,将高亮显示的日期作为用户的选中日期;

若所述日期选择模式为日期范围选择模式,将所述初始日期数组中的第一个初始日期对象作为开始日期,第二个初始日期对象作为结束日期,将所述开始日期和所述结束日期之间的所有日期进行高亮显示,将高亮显示的日期作为用户的选中日期;

根据所述二维日期数组中的公历日期数组获得对应的公历节日,根据所述二维日期数组中的农历日期数组获得对应的农历节日、天干地支年号和属相,将所述选中日期、公历节日、农历节日、天干地支年号和属相显示在日期选择面板上,完成日期选择面板的渲染。

其中,所述获取用户在所述日期选择面板上的鼠标事件,确定用户选择的日期,完成日期选择,具体包括:

所述鼠标事件包括滚轮事件、点击事件;

获取用户在所述日期选择面板上的点击事件或滚轮事件,对日期选择面板进行翻页操作,并重新计算和渲染所述日期选择面板;

获取用户在所述日期选择面板上的点击事件,确定用户选择的日期,将所述用户选择的日期进行高亮显示,完成日期选择。

本发明还提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有农历日期选择程序,所述农历日期选择程序被处理器执行时实现如上所述的农历日期选择方法的步骤。

综上所述,本发明公开了一种农历日期选择方法及相关设备,所述方法包括:获取后台配置的日期选择模式、禁用方法和初始日期数组;根据初始日期数组生成公历日期数组,根据所述公历日期数组计算对应的农历日期数组,合并所述公历日期数组与所述农历日期数组,生成二维日期数组;根据所述日期选择模式、所述禁用方法、所述初始日期数组和所述二维日期数组对所述日期选择面板进行渲染;获取用户在所述日期选择面板上的鼠标事件,确定用户选择的日期,完成日期选择。本发明通过在日期选择器上显示农历信息和节日信息,使得用户在进行日期选择时能准确地获取对应的农历日期,通过鼠标滚轮对日期选择面板进行切换,拓展了用户的操作方式,提升了用户的使用体验。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者终端中还存在另外的相同要素。

当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述的程序可存储于一计算机可读取的计算机可读存储介质中,所述程序在执行时可包括如上述各方法实施例的流程。其中所述的计算机可读存储介质可为存储器、磁碟、光盘等。

应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号