一、高级日历组件

 

● 本模块说明

 

通过使用本模块可以非常方便实现很好看的日历组件界面。

注:欲使用日历组件必须配置“高级日历组件”模块。

 

界面设计:

配置模块后,在“扩展组件”分类下可以找到“高级日历框”组件,并将其拖放到界面设计器中。

 

运行结果如下图:

日历不需要任何设置,就可以直接运行显示出来。

下图是日历运行默认样式,所有的颜色信息均可以自行修改。

 

● 全屏显示(读写)

 

帮助文档如下图:

高级日历组件显示时,无论组件多大,日历显示区域是一个固定的尺寸。

本属性设置为真,可以将日历显示区域填满整个日历组件。

同名读属性则用来读取是否设置了全屏显示。

 

代码编写如下图:

“按钮1”被点击后,设置本属性值为“取反”后的当前属性。

这样就可以实现按钮被点击后,在“全屏显示”“非全屏显示”之间切换。

 

运行结果如下图(GIF):

 

● 其他阳历文本色(写)
● 刷新绘制

 

“其他阳历文本色(写)”帮助文档:

在日历框中,除了会显示当前月份外,还会显示上月结束的日期和下月开始的日期。

本属性的作用就是来设置上月和下月日期的阳历(公历)月份的颜色。

 

“刷新绘制”帮助文档:

在日历框中只要是颜色的修改和设置,都需要调用本方法进行刷新。

如果是批量设置颜色,可以在批量设置颜色后调用一次即可。

 

代码编写如下图:

“按钮1”被点击后,设置本属性值为黄色,并调用“刷新绘制()”方法刷新。

 

运行结果如下图:

最终结果可以看到,上月和下月的公历颜色变成了黄色。

 

● 其他月阴历文本色(写)

 

帮助文档如下图:

本属性的作用是用来设置其他月的阴历(农历)文本色。

 

代码编写如下图:

“按钮1”被点击后,设置其它阴历文本色为黄色。

 

运行结果如下图:

最终结果可以看到其他月的农历颜色设置为了黄色。

 

● 当前月阳历文本色(写)

 

帮助文档如下图:

本属性用来设置当前月的阳历(公历)文本色。

 

代码编写如下图:

“按钮1”被点击后,执行本属性设置颜色为红色。

 

运行结果如下图:

最终可以看到公历被设置成红色。

 

● 当前月阴历文本色(写)

 

帮助文档如下图:

本属性可以用来设置当前月的阴历(农历)文本颜色。

 

代码编写如下图:

“按钮1”被点击后执行本属性,设置颜色为红色。

 

运行结果如下图:

最终结果可以看到,当前月的农历变成了红色。

 

● 当前日阳历文本色(写)

 

帮助文档如下图:

通过本属性可设置今日阳历(公历)的文本色。

注意:并非选中日期。

 

代码编写如下图:

“按钮1”被点击后,设置本属性为黄色,并刷新绘制。

 

运行结果如下图(GIF):

最终可以看到今日阳历被修改为了黄色。

 

● 当前日阴历文本色(写)

 

帮助文档如下图:

通过本属性可以设置今日阴历(农历)的文本色。

 

代码编写如下图:

“按钮1”被点击后调用本属性设置其属性值为黄色。

 

运行结果如下图(GIF):

最终结果可以可看到阴历被修改为黄色。

 

● 选中阳历文本色(写)

 

帮助文档如下图:

顾名思义,通过本属性来设置选中日期的阳历(公历)文本色。

 

代码编写如下图:

“按钮1”被点击后,设置当前属性为黄色。

 

运行结果如下图(GIF):

最终可以看到选中阳历的颜色被修改为黄色。

 

● 选中阴历文本色(写)

 

帮助文档如下图:

通过本属性可以设置选中的阴历文本色。

 

代码编写如下图:

“按钮1”被点击后设置其属性颜色为黄色,并刷新。

 

运行结果如下图(GIF):

最终结果可以看到,选中的阴历颜色被修改。

 

● 选中背景色(写)

 

帮助文档如下图:

本属性用来设置选中的背景色。

 

代码编写如下图:

“按钮1”被点击后设置其属性颜色为黄色。

 

运行结果如下图(GIF):

最终可以看到选中的背景色被修改为黄色。

 

● 切换动画(写)

 

帮助文档如下图:

顾名思义,通过本属性可以设置日历切换日期时的切换动画,默认为立体动画。

属性值调用方式:页面切换动画.XXX。

 

代码编写如下图:

“按钮1”被点击后设置本属性值为“页面切换动画.缩放动画”

 

运行结果如下图(GIF):

最终可以看到当前日历切换动画被修改。

注意:如果切换动画失效或者日历不显示,可以调用“刷新绘制()”方法刷新。

 

● 周首日模式(写)

 

帮助文档如下图:

本属性的作用是用来设置日历周首日,大部分日历默认都是从周日开始计算。

属性值调用方式:周首日模式.XXX。

 

代码编写如下图:

“按钮1”被点击后设置本属性的属性值为“周首日模式.周一起始”

 

运行结果如下图(GIF):

最终结果日历成功的从周一开始显示。

 

● 日历可否滚动(写)

 

帮助文档如下图:

通过本属性可以设置当前日历框可否通过手势滑动翻页。

属性值为真则可以手势滑动翻页,为假否则不可以。

 

代码编写如下图:

“按钮1”被点击后设置本属性为假。

 

运行结果如下图(GIF):

最终结果可以看到手势滑动翻页失效。

 

● 日历项高度(写)

 

帮助文档如下图:

本属性可用来设置日历中日期格子的高度,单位像素。

 

代码编写如下图:

“按钮1”被点击后调用本属性设置为100像素。

 

运行结果如下图(GIF):

最终结果可以看到高度发生了明显的变化。

 

● 日期填充模式(写)

 

帮助文档如下图:

通过本属性可以设置当前日期填充模式,决定日期显示模式。

例如:设置属性值为“日期填充模式.当前月”,则不会在当前月显示上月结束日期和下个月开始日期.

高级日历框在不设置本属性的情况下默认为“日期填充模式.固定”

 

代码编写如下图:

“按钮1”被点击后调用当前属性,设置属性值为“日期填充模式.当前月”

 

运行结果如下图(GIF):

最终结果可以看到,当前月的上一月和下一月的日期消失。

 

● 阳历文本尺寸(写)

 

帮助文档如下图:

通过本属性可设置当前日历框的阳历文本尺寸,单位是SP。

 

代码编写如下图:

“按钮1”被点击后调用当前属性设置其文本尺寸为20SP。

 

运行结果如下图(GIF):

最终结果可以明显看到“阳历文本尺寸”变大。

 

● 阴历文本尺寸(写)

 

帮助文档如下图:

通过本属性可以设置当前阴历文本尺寸,单位SP。

 

代码编写如下图:

“按钮1”被点击设置当前属性值为20SP。

 

运行结果如下图(GIF):

最终结果可以明显看到阴历文本尺寸变大。

 

● 周日期列表(读)
● 月日期列表(读)

 

周日期列表:用于获取当前日期所处周的所有日历信息。

月日期列表:用于获取当前日期所处月的所有日历信息。

此处演示“周日期列表”用法,月日期列表用法雷同。

 

帮助文档如下图:

本读属性用于获取周日历信息,返回“日历信息列表类”,本类是一个模板类。

 

“日历信息列表类”中,共有三个模板。

其三个模板类型分别对应的实际数据类型为“日历信息类”“日历信息集合类”“日历信息枚举器类”

 

代码编写如下图:

1、在成员变量中增加一个“文本框1”

2、调用“周日期列表”读属性,赋值给定义的“周信息”变量。

3、循环取出“周信息”的所有成员,赋值给定义的“日历信息类”变量。

4、通过“日历信息”就可以取出“月日”信息,最后将其显示在文本框中。

 

运行结果如下图(GIF):

最终结果当前周的所有日期将会显示在文本框中。

 

● 年(读)
● 月(读)
● 日(读)

 

以上三个读属性用于读取今天的日期,返回值为整数。

注意:并非选中日期。

 

代码编写如下图:

“按钮1”被点击后,分别调用三个读属性进行“到文本()”转换,将其显示到标题中。

 

运行结果如下图:

 

● 向上滚动
● 月份被改变(事件)

 

“向上滚动”帮助文档:

如果当前日历为周显示模式,则滚动到上周,否则滚动到上月。

 

“月份被改变(事件)”帮助文档:

月份发生改变的时候,会触发本事件。

参数返回切换后的年月。

 

代码编写如下图:

1、“按钮1”被点击后调用本方法滚动到上月。

2、添加“月份被改变”事件,将新的年月显示在标题上。

 

运行结果如下图(GIF):

最终可以看到月份被切换。

 

● 向下滚动

 

帮助文档如下图:

本方法的作用和“向上滚动”正好相反。

 

代码编写如下图:

“按钮1”被点击后,执行本方法向下滚动。

 

运行结果如下图(GIF):

最终可以看到日历翻到下一月。

 

● 置星期栏颜色
● 更新星期栏

 

“置星期栏颜色”帮助文档:

通过本方法可以设置日历星期栏的颜色,共有三个参数,可以设置背景色,文本色和分割线颜色。

注意:本方法并不能立即更新颜色值。

 

“更新星期栏”帮助文档:

本方法本执行后可以更新设置的星期栏颜色。

 

代码编写如下图:

“按钮1”被点击后,执行“置星期栏颜色”“更新星期栏”两个方法后就可以设置颜色。

 

运行结果如下图(GIF):

最终结果可以看到星期栏颜色发生变化。

 

● 滚动至当前日

 

帮助文档如下图:

顾名思义,通过本方法可滚动到今天所在日期。

 

代码编写如下图:

“按钮1”被点击后执行本方法滚动。

 

运行结果如下图(GIF):

最终可以看到无论选择什么日期,“按钮1”点击后都会定位今天日期。

 

● 滚动至指定日期

 

帮助文档如下图:

顾名思义,通过本方法可以滚动到指定日期。

参数1、3:填写要滚动到的年月日。

参数4:设置滚动时是否有动画,默认为真。

注意:参数4的动画效果在当前月切换时无效。

 

代码编写如下图:

“按钮1”被点击后执行本方法滚动到2019年11月20日。

 

运行结果如下图(GIF):

最终成功滚动到指定日期。

 

● 置文本颜色

 

帮助文档如下图:

通过本方法可同时设置“当前日”“当前月份”“其他月份”的文本颜色。

 

代码编写如下图:

“按钮1”被点击后执行本方法设置颜色后,务必调用“刷新绘制()”方法刷新。

 

运行结果如下图(GIF):

最终可以看到颜色都被修改。

 

● 置选中颜色

 

帮助文档如下图:

顾名思义,通过本方法可修改选中日期的颜色。

参数1:选中日期的背景色。

参数2:选中日期的公历文本色。

 

代码编写如下图:

“按钮1”被点击后执行本方法修改颜色即可。

 

运行结果如下图(GIF):

最终可以看到选中日期的颜色被修改成指定颜色。

如果想要颜色被立即修改,需调用“刷新绘制()”方法。

 

● 置限制范围
● 日期被选中(事件)

 

“置限制范围”帮助文档:

通过本方法可限定日历框的显示范围,超出范围的将无法选中,超出的月份将无法查看。

参数1、3:设置最小显示年月日。

参数4、6:设置最大显示年月日。

 

“日期被选中(事件)”帮助文档:

当日期被选择后会触发本事件。

参数1:返回日历信息类,通过本类可获取年月日等数据。

参数2:可以判断是否为用户点击选择。

 

代码编写如下图:

1、“按钮1”被点击后执行本方法限制日期在11月10日到20日之间,超出此日期的将无法选中可查看。

2、添加“日期被选中”事件,取出年月日显示在标题上。

 

运行结果如下图(GIF)

可以看到,当“按钮1”被点击后,超出范围的日期将无法选中,并且也无法查看其他月。

 

● 置切换动画
● 日历动画基础类
● 向左滑动(虚拟)
● 向右滑动(虚拟)

 

“置切换动画”帮助文档:

通过本方法可设置日历框的切换动画,与“切换动画”写属性不同的地方在于,本方法可以自定义动画。

如果参数设置空对象,日历框的动画效果会变成平移效果。

 

“日历动画基础类”帮助文档:

通过本类可设置自定义动画效果,该类中有两个虚拟方法,用于设置不同方向的切换动画。

 

“向左滑动(虚拟)”帮助文档:

通过本虚拟方法可设置向左滑动的动画效果。

参数1:返回所操作的日历框组件,通过设置本参数的尺寸等信息可以让日历框呈现不同的动画效果。

参数2:本参数范围是0到1之间,滑动日历过程中本参数会从小到大不断更新。

 

“向右滑动(虚拟)”帮助文档:

顾名思义,向右滑动会触发本虚拟方法。

参数1:与“向左滑动”的参数1一致。

参数2:本参数的范围是从1到0,并且滑动过程中是从大大小不断更新本参数。

 

代码编写如下图:

1、定义类型为“日历动画基础类”的类,起名“日历动画”

2、添加“向左滑动”虚拟方法,并设置参数1的垂直位置为100。

3、滑动完毕后需要将其组件归位,这里可以判断“当前位置>0.8”的时候就让其组件“垂直位置”归位。

4、添加“向右滑动”虚拟方法,和“向左滑动”进行雷同操作。

 

5、“按钮1”被点击后调用“置切换动画()”方法,参数填写“新建对象(日历动画)”即可。

注意:此处的“日历动画”的名称必须和定义类的名称一致。

 

运行结果如下图(GIF):

 

● 日期被长按(事件)

 

帮助文档如下图:

顾名思义,当日期被长按后会触发本事件。

参数1:通过此参数可以取出年月日等信息。

 

代码编写如下图:

添加“日期被长按”事件,并取出“月,日”显示。

 

运行结果如下图(GIF):

当日期被长按后,月日会成功提示。

 

● 绘制日历文本(事件)

 

帮助文档如下图:

当日期开始绘制的时候会触发本事件,如果要自行绘制日期信息,本事件务必返回1。

 

代码编写如下图:

1、添加“绘制日历文本”接收事件。

2、定义两个类型为“画笔类”的变量,设置不同的颜色,用于绘制不同内容。

3、定义“横纵坐标”整数变量,用于存储绘制坐标。

4、通过“日历信息.属于当前月”读属性,来判断是否为当前月或其他月,从而调用“画文本()”绘制不同内容。

5、最后返回值务必返回1。

 

运行结果如下图:

 

● 绘制日历选中项(事件)

 

帮助文档如下图:

当日历选中项开始绘制的时会触发本事件,如果要自行绘制选中项,本事件务必返回1。

 

代码编写如下图:

本事件的操作方式和“绘制日历文本”事件用法基本一致。

计算坐标后执行“画圆()”方法,可以绘制一个圆形的背景色。

 

运行结果如下图(GIF):

 

● 视图被改变(事件)

 

帮助文档如下图:

当日历视图在周日历和月日历之间切换时会触发本事件。

参数返回是否为月视图。

 

界面设计如下图:

想要实现周日历和月日历切换,必须满足以下条件。

1、底层布局必须为“高级日历布局器”

2、在“高级日历框”组件下务必添加一个“纵向滚动容器”

 

代码编写如下图:

添加本事件后判断“是否为月视图”,从而修改窗口标题。

 

运行结果如下图(GIF):

通过手势上下滑动可完成月日历和周日历的切换。

注:模拟器中就是鼠标点击后上下滑动。

 

● 展开日历
● 是否已展开日历

 

“展开日历”帮助文档:

调用本方法可以进行展开成月日历或收缩成周日历操作。

参数1:提供真则展开成月日历,否则收缩为周日历。

参数2:设置动画时长,默认300毫秒。

 

“是否已展开日历”帮助文档:

调用本方法可判断当前日历是否为月日历。

返回真为月日历,返回假则为周日历。

 

代码编写如下图:

“按钮1”被点击后判断是否展开日历,通过返回值来决定调用是否显示月历。

 

运行结果如下图(GIF):

最终可以看到“按钮1”被点击后,高级日历框会在周历和月历之间切换。

 

● 周历可否滚动(写)

 

帮助文档如下图:

通过本属性可以设置周历框是否支持滚动切换周。

注意:欲使用本属性必须将日历框显示模式修改为周日历才可以使用。

 

代码编写如下图:

“按钮1”被点击后设置本属性值为假。

 

运行结果如下图(GIF):

最终可以看到当“按钮1”被点击后,周历框将无法滑动切换。

 

 

 

二、日历信息类

 

● 创建
● 二十四节气

 

“创建”帮助文档:

顾名思义,通过指定的年月日可创建当前“日期信息类”对象。

通过返回的对象可以进行更多的操作。

例如:取二十四节气等。

 

“二十四节气(读)”帮助文档:

顾名思义,通过本属性可读取当前对象中存储的二十四解析。

如果不存在将返回空文本。

 

代码编写如下图:

1、定义“日历信息类”变量勾选参考。

2、定义“文本框1”组件,用来显示节气。

3、“按钮1”被点击后调用“创建()”方法创建“2019年11月22日”的日期对象。

4、调用“二十四节气”读属性读取节气显示在文本框1上。

 

运行结果如下图:

 

● 农历年(读)
● 农历月(读)
● 农历日(读)
● 农历日文本(读)

 

以上四个读属性,就是用来读取当前日历对象内存储的农历日期。

 

代码编写如下图:

1、“按钮1”被点击调用“创建()”方法,创建日历信息对象。

2、分别调用四个读属性读取后显示在文本框中。

 

运行结果如下图:

 

● 农历节日(读)

 

帮助文档如下图:

本读属性用来取出农历节日,如果所指定的日期中没有农历节日,则返回空文本。

 

代码编写如下图:

“按钮1”被点击后创建当前日历对象,随后调用当前属性读取农历节日。

 

运行结果如下图:

 

● 周索引(读)
● 是否为周末(读)

 

“周索引”帮助文档:

通过本属性可读取当前日历信息对象中的是周几。

 

“是否为周末”帮助文档:

通过本属性可读取当前日历信息对象是否为周末。

 

代码编写如下图:

1、“按钮1”被点击后创建当前日历信息对象。

2、判断是否为周末后读取周索引。

 

运行结果如下图:

 

● 天干(读)
● 地支(读)

 

以上两个属性用来读取当前日历对象中的天干地支信息。

 

代码编写如下图:

1、“按钮1”被点击后创建日历信息对象。

2、分别调用天干、地支读属性将其显示在文本框中。

 

运行结果如下图:

 

● 是否为闰年(读)

 

帮助文档如下图:

顾名思义,通过本属性可判断当前是否为闰年。

 

代码编写如下图:

“按钮1”点击创建日历信息对象后,调用本属性判断是否为闰年。

 

运行结果如下图:

 

● 本月天数(读)

 

帮助文档如下图:

调用本属性可读取当前日历信息对象中的月份总天数,返回值为整数。

 

代码编写如下图:

“按钮1”被点击创建对象后,调用本属性读取天数。

 

运行结果如下图:

 

● 生肖(读)

 

帮助文档如下图:

调用本属性可读取当前对象内年份的生肖信息。

 

代码编写如下图:

“按钮1”被点击创建对象后调用本属性读取生肖。

 

运行结果如下图:

 

● 阳历节日(读)

 

帮助文档如下图:

通过本属性可读取公历节日信息,如果没有返回空文本。

 

代码编写如下图:

“按钮1”被点击后读取“1月1日”的公历节日。

 

运行结果如下图:

 

● 取农历月总天数(读)

 

帮助文档如下图:

通过本方法可读取指定农历总天数。

参数1、2:依次填写正确的年月即可。

注:本方法为静态方法,可直接通过“日历信息类”调用本方法。

 

代码编写如下图:

“按钮1”被点击后调用本方法读取“2020年1月”的总天数。

 

运行结果如下图:

 

● 取月份汉字(读)

 

帮助文档如下图:

通过本方法可将“1”转换成“一”“2”转换成“二”以此类推。

注:本方法为静态方法,可直接通过“日历信息类”调用。

 

代码编写如下图:

“按钮1”被点击后调用本方法取出转换后的汉字文本。

 

运行结果如下图: