农历日历显示方法

文档序号:6573122阅读:537来源:国知局
专利名称:农历日历显示方法
技术领域
本发明涉及一种农历日历的显示方法,具体的来说是指一种在电视机等电子产品上将农历日历显示出来的一种方法。
目前,许多电视机带有日历功能,该日历只能显示公历,无法显示农历。但现实生活中,也确实存在查找农历日期的需要,如春节在公历上的几月几日、星期几等。公历日历的显示是以传统的计算方法,通过电视机软件编程实现的。而对于农历,其月大月小、闰月等情况没有规律,不能象公历一样,以某一种计算方法通过软件编程将其显示出来。
本发明的目的在于克服上述问题,提供一种将农历日历显示出来的方法,满足农历日期查找的需要。
本发明的上述目的是通过以下方法实现的①.首先统计需要显示时间段内,农历月的大小情况和闰月情况,并存储;②.存储公历某一天对应的农历;③.当显示农历时,根据存储的农历月的大小情况和闰月情况,以及公历某一天对应的农历,确定公历月每一天应显示的农历,从而将农历显示出来。
在上述方法的基础上,进一步将显示时间段内所有的农历月按大月30天记为1,小月29天记为0的原则,以时间先后顺序排列成为一个二进制有序数组,并存于ROM存储器中,从而完成农历月大小情况的统计;对农历闰月在上述二进制有序数组中的位置情况进行标记,并存于ROM存储器中,从而完成农历闰月情况的统计;在第2步中,存储当前显示公历月第一天对应的农历;在第3步中,可根据以上第1步、第2步存储的内容,确定公历每一天的对应的农历值,从而将农历显示出来。
在上述显示方法中,第1步统计需要显示公历时间段农历月的大小情况和闰月情况,就确定该时间段(例如1980年1月1日至2020年12月31日),农历的排列情况。公历的排列是固定的,其日历可根据传统的计算方法计算出来。第二步确定公农历的对应关系,从而在上述基础上实现第三步的农历显示。该农历显示方法实现了农历日历的显示,使公农历一目了然,方便了农历日历的查找。
下面结合附图对本发明方法具体实施方式
作进一步详细的描述,其中

图1是本发明方法实施例一公历月的农历显示流程;图2是本发明方法实施例下一公历月的农历显示流程;图3是本发明方法实施例上一公历月的农历显示流程;图4是本发明方法的一种显示形式;图5是本发明方法的另一种显示形式。
本发明方法实施例以电视机上显示农历为例,首先统计需要显示公历时间段内农历月的大小情况,并按照“大月30天记为1,小月29天记为0”的原则,将该显示时间段内所有农历月按先后顺序排列成为一个二进制有序数组,存于程序存储器ROM中;对农历闰月在所述二进制有序数组中的位置情况进行标记,并存于程序存储器ROM中。
设置农历月计数变量,表示当前农历月在上述农历月大小二进制有序数组中的位置;设置农历日期变量,表示当前日期为农历月的第几天;设置农历闰月计数变量,表示某一农历月日期、包括该日期前农历闰月的个数,即之前有几个闰月。在EEPROM存储器中,存储某一显示公历月第一天对应的农历月计数及对应的农历日期和包括该农历日期前农历闰月计数。例如,2000年1月1日在1980年1月1日至2020年12月31日显示时间段对应的农历月计数为FDH(253),对应农历日期为19H(25),该日期前包括该日期农历闰月计数为06H(6)。将上述公农历对应关系存储于EEPROM中可便于当前显示公历月的显示,显示时从中读取,在关闭显示时存入,每次显示均为上次显示的月份。
图1是本发明方法实施例一公历月农历显示流程。当显示时,首先进行第一步ST1初始化,从EEPROM存储器中读出该公历月第一天对应的农历月计数、农历日期、农历闰月计数,并保存,保存的目的在于如果显示上一月时,作为基础计算上一月第一天的对应值;根据农历月计数、农历月的大小情况二进制数组,查出该农历月的天数;设定农历显示个数为0;初始化后,进行第二步ST2,判断该农历日期是否为1,如果是,则显示该农历月份,是闰月,就显示成闰几月;如果不为1,则显示该农历日期;该农历月份等于农历月计数加一修正值后,减去农历闰月计数,再除以12后即得,闰月的判断根据农历月计数是否处在闰月标记位置来判定的(以下相同);显示后,进行第三步ST3,农历日期加1,并判断农历日期是否大于该农历月天数;如果是,就意味该农历月已显示完,进入下一农历月的显示,农历月计数加1,以第一步的方式查出新农历月的天数,农历日期设置为1;判断新农历月是否是闰月,如果是,农历闰月计数加1,如果不是,农历闰月计数不变,进行上述操作后,进入第四步ST4;如果农历日期不大于该农历月天数,则直接进入第四步ST4;第四步ST4,农历显示个数加1,并判断该农历显示个数是否等于该显示公历月天数,如果是,则该公历月农历显示完毕,如果不是,则返回第二步ST2,进行下一农历日期的显示;在此公历月的天数是已知,除2月份外,其余月是固定,2月份的天数也可根据年份,经过简单计算即可确定。
图2是本发明方法实施例下一公历月的农历显示流程。该公历月显示完毕后,如果有“显示下一公历月”的命令,则进行第五步ST5,判断当前显示公历月是否是显示时间段最后一个公历月,如果是,就将农历月计数、农历闰月计数,农历日期置为该显示时间段第一个公历月第一天的对应值,然后进行第六步ST6;如果不是,则直接进入第六步ST6;第六步ST6,农历显示个数置为0,保存农历月计数、农历闰月计数、农历日期后,返回到第二步ST2。在第六步ST6中,农历月计数、农历闰月计数、农历日期为下一公历月第一天对应的值,保存的目的在此处有两个一是退出显示时,将该值存入EEPROM中,以便下一次开机时,显示处在退出时的显示状态;二是作为农历日历显示回翻,计算上一公历月第一天对应值的基础。
图3是本发明方法实施例上一公历月的农历显示流程。该公历月显示完毕后,如果有“显示上一公历月”的命令,则进行第七步ST7,判断当前显示公历月是否是显示时间段第一个公历月,如果是,就将农历月计数、农历闰月计数,农历日期置为该显示时间段最后一个公历月第一天的对应值,然后直接进入第十步ST10;如果不是,则将农历月计数、农历闰月计数、农历日期置为当前显示公历月第一天的对应值;设置天数变量,并置为上一公历月的天数;设置完后,进入第八步ST8;进入第八步ST8后,对农历日期减1,并判断农历日期是否等于0,如果等于,则判断当前所在农历月是否是农历闰月,是,闰月计数减1;农历月计数减1;查出上一农历月天数,农历日期置为该天数,然后,进入第九步ST9,如果不是,直接进入第9步ST9;进入第九步ST9,将天数减1,并判断天数是否等于0,如果是,进入第十步ST10,如果不等于,返回第八步ST8;第十步ST10,将农历显示个数置0,保存农历月计数,农历闰月计数、农历日期,并返回到第二步ST2;在此保存的是上一公历月第一天对应农历值,以便退出时,将该值存入EEPROM中,下一次开机时,显示处在退出时的显示状态;此外该值还作为继续向上显示,计算上上公历月第一天对应值的基础。
在本发明方法实施例中,下一公历月的农历显示、上一公历月的农历显示均共用图1中第2步ST2到第4步ST4部分程序。上一公历月的农历显示比下一公历月的农历显示多了计算上一公历月第一天对应的农历月计数,农历闰月计数、农历日期的步骤,即第七步ST7到第九步ST9,其中判定闰月、查出农历月天数与图1所示流程中的判断方法是一样的。
在本发明方法实施例中,设置农历闰月计数变量,并存储和调用改变量主要目的是简化流程。实际上,闰月个数可根据当前农历月所在位置和闰月标记位置确定。
在此,还可以农历月计数加一修正值后,减去农历闰月计数,再除以12取整得到农历年份,根据天干地支规律,将农历年及属相显示出来。
图4是本发明方法的一种显示形式。目前,在某些电视上,只能显示12行字符,且受每行显示字符不得超过规定显示字符的限制,公农历只能分开显示。在各公农历各自状态,均可向下翻月,同样,也可以向上翻月。
图5是本发明方法的另一种显示形式。公农历一并显示,翻月一并翻月。
当然,具体的流程多种多样,程因人而异,本发明方法的范围不限于上述具体实施例。
权利要求
1.一种农历日历显示方法,其特征在于①.首先统计需要显示时间段内,农历月的大小情况和闰月情况,并存储;②.存储公历某一天对应的农历;③.当显示农历时,根据存储的农历月的大小情况和闰月情况,以及公历某一天对应的农历,确定公历月每一天应显示的农历,从而将农历显示出来。
2.根据权利要求1所述的农历日历显示方法,其特征在于所述农历月大小情况的统计是指将显示时间段内所有的农历月按大月30天记为1,小月29天记为0的原则,以时间先后顺序排列成为一个二进制有序数组;所述农历闰月情况的统计是指对农历闰月在所述二进制有序数组中的位置情况进行标记。
3.根据权利要求2所述的农历日历显示方法,其特征在于所述存储公历某一天对应的农历是指存储当前显示公历月第一天对应的农历。
4.根据权利要求3所述的农历日历显示方法,其特征在于设置有农历月计数变量,表示当前农历月在所述农历月大小二进制有序数组的位置;设置有农历日期变量,表示当前日期为农历月的第几天;所述存储当前显示公历月第一天对应的农历是指对应的农历月计数、农历日期。
5.根据权利要求4所述的农历日历显示方法,其特征在于在显示每一公历月时,都保存该公历月第一天对应的农历月计数、农历日期,并在退出显示时,存入EEPROM存储器中。
6.根据权利要求4所述的农历日历显示方法,其特征在于按以下步骤确定公历月每一天应显示的农历,并显示出来当显示时,首先进行第一步(ST1)初始化,从存储器中读出该公历月第一天对应的农历月计数、农历日期;根据农历月计数、农历月的大小情况二进制数组,查出该农历月的天数;设置农历显示个数变量,并置为0;初始化后,进行第二步(ST2),判断该农历日期是否为1,如果是,则显示该农历月份,是闰月,就显示成闰几月;如果不为1,则显示该农历日期;显示后,进行第三步(ST3),农历日期加1,并判断农历日期是否大于该农历月天数,如果是,农历月计数加1,以第一步(ST1)的方式查出新农历月的天数,农历日期设置为1,进入第四步(ST4);如果农历日期不大于该农历月天数,则直接进入第四步ST4;第四步(ST4),农历显示个数加1,并判断该农历显示个数是否等于该显示公历月天数;如果是,则该公历月农历显示完毕,如果不是,则返回第二步(ST2),进行下一农历日期的显示;显示下一公历月时,则进行第五步(ST5),判断当前显示公历月是否是显示时间段最后一个公历月,如果是,就将农历月计数、农历日期置为该显示时间段第一个公历月第一天的对应值,然后进行第六步(ST6);如果不是,则直接进入第六步(ST6);第六步(ST6),农历显示个数置为0,返回到第二步(ST2);显示上一公历月时,则进行第七步(ST7),判断当前显示公历月是否是显示时间段第一个公历月,如果是,就将农历月计数、农历日期置为该显示时间段最后一个公历月第一天的对应值,然后,进行第十步(ST10);如果不是,则以返回计算的方式确定上一公历月每一天的对应值,然后,进行第十步(ST10);第十步(ST10),农历显示个数置为0,返回到第二步(ST2);以上,农历月份值可由农历月计数加一修正值后,减去该农历月包括该月前已有农历闰月的个数,再除以12后即得;闰月的判断根据农历月计数是否处在闰月标记位置来判定,闰月个数根据当前农历月所在位置和闰月标记位置确定。
全文摘要
本发明公开了一种农历日历显示的方法,通过统计需要显示时间段内,农历月的大小情况和闰月情况,并存储;存储公历某一天对应的农历;当显示农历时,根据存储的农历月的大小情况和闰月情况,以及公历某一天对应的农历,确定公历月每一天应显示的农历,从而将农历显示出来,该农历显示方法实现了农历日历的显示,使公农历一目了然,方便了农历日历的查找。
文档编号G06C11/02GK1288180SQ00113028
公开日2001年3月21日 申请日期2000年6月14日 优先权日2000年6月14日
发明者向何, 罗巍 申请人:四川长虹电器股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1