滚轮选择框扩展
WheelView, like number picker, but can be any strings.
original code from WheelView: 效果类似android4.0以上原生的DatePicker 18
Thanks @wildcontrol to sponsor this extension
Demo picture: this demo used 3 extensions

Download link here;
aix拓展 cn.kevinkun.WheelView.aix
demo WheelView.aia
Wheel Calendar 扩展
Wheel Calendar 扩展提供了一个可自定义的交互式日历选择框,采用滚轮设计,让用户可以轻松地在应用中集成日期选择功能。无论您是构建调度应用、表单还是任何需要日期选择的应用,轮盘日历选择框都提供了用户友好的界面。
下载链接
版本 1.0: WheelCalendarV1.0.aix
版本 3.0(推荐): SpinCalendarV3.aix
版本信息
- 版本 1.0:WheelCalendarV1.0.aix (14.1 KB) - 2025年3月18日发布
- 版本 2.0:已废弃
- 版本 3.0:SpinCalendarV3.aix (12.7 KB) - 2025年3月22日发布,功能增强版
功能概述
扩展特性
- 滚轮日历选择框:直观的轮盘界面设计
- 自定义和交互式:支持各种自定义选项
- 日期选择:简单易用的日期选择功能
- 年龄计算:计算用户与当前日期的年龄差
- 生日倒计时:显示距离下一个生日的天数
- 多种输出格式:支持不同的日期格式输出
截图
Logo 和主界面

输出示例

Spin Calendar V3 界面

函数
- OpenWheel 打开轮盘(年份,月份,日期)
- 打开滚轮日历选择框并设置初始日期。
- 年份:数字类型,初始年份
- 月份:数字类型,初始月份(1-12)
- 日期:数字类型,初始日期
- SetDate 设置日期(年份,月份,日期)
- 设置日历的当前日期。
- 年份:数字类型,要设置的年份
- 月份:数字类型,要设置的月份(1-12)
- 日期:数字类型,要设置的日期
- GetSelectedDate 获取选中日期() {:YAILList}
- 获取用户选择的日期信息。
- 返回值:列表类型,包含年、月、日的列表
- GetSelectedYear 获取选中年份() {:.number .read-only}
- 获取用户选择的年份。
- 返回值:数字类型,选中的年份
- GetSelectedMonth 获取选中月份() {:.number .read-only}
- 获取用户选择的月份。
- 返回值:数字类型,选中的月份(1-12)
- GetSelectedDay 获取选中日期() {:.number .read-only}
- 获取用户选择的日期。
- 返回值:数字类型,选中的日期
- GetDateText 获取日期文本() {:.text .read-only}
- 获取格式化的日期文本。
- 返回值:文本类型,格式化的日期字符串
- GetCurrentDate 获取当前日期() {:YAILList}
- 获取当前系统日期。
- 返回值:列表类型,包含当前年、月、日的列表
- SetMinDate 设置最小日期(年份,月份,日期)
- 设置可选择的最小日期。
- 年份:数字类型,最小年份
- 月份:数字类型,最小月份(1-12)
- 日期:数字类型,最小日期
- SetMaxDate 设置最大日期(年份,月份,日期)
- 设置可选择的最大日期。
- 年份:数字类型,最大年份
- 月份:数字类型,最大月份(1-12)
- 日期:数字类型,最大日期
- SetThemeColor 设置主题颜色(颜色)
- 设置日历的主题颜色。
- 颜色:数字类型,主题颜色值
- SetTodayColor 设置今日颜色(颜色)
- 设置今日日期的显示颜色。
- 颜色:数字类型,今日日期颜色值
- SetSelectedColor 设置选中颜色(颜色)
- 设置选中日期的颜色。
- 颜色:数字类型,选中日期颜色值
高级函数
- CalculateAge 计算年龄(出生年份,出生月份,出生日期) {:YAILList}
- 计算指定出生日期到当前日期的年龄信息。
- 出生年份:数字类型,出生年份
- 出生月份:数字类型,出生月份(1-12)
- 出生日期:数字类型,出生日期
- 返回值:列表类型,包含年龄、月数、天数的列表
- GetAgeText 获取年龄文本(出生年份,出生月份,出生日期) {:.text}
- 获取格式化的年龄文本描述。
- 出生年份:数字类型,出生年份
- 出生月份:数字类型,出生月份(1-12)
- 出生日期:数字类型,出生日期
- 返回值:文本类型,年龄描述文本
- GetDaysUntilBirthday 获取生日倒计时(出生年份,出生月份,出生日期) {:.number .read-only}
- 计算距离下一个生日还有多少天。
- 出生年份:数字类型,出生年份
- 出生月份:数字类型,出生月份(1-12)
- 出生日期:数字类型,出生日期
- 返回值:数字类型,距离下一个生日的天数
事件
- DateSelected 日期选择(年份,月份,日期)
- 当用户选择日期时触发。
- 年份:数字类型,选中的年份
- 月份:数字类型,选中的月份(1-12)
- 日期:数字类型,选中的日期
- CalendarClosed 日历关闭()
- 当日历选择框关闭时触发。
属性
- IsVisible 是否可见 {:.boolean}
- 设置或获取日历是否可见。
- SelectedYear 选中年份 {:.number .read-only}
- 获取当前选中的年份。
- SelectedMonth 选中月份 {:.number .read-only}
- 获取当前选中的月份(1-12)。
- SelectedDay 选中日期 {:..number .read-only}
- 获取当前选中的日期。
- CurrentYear 当前年份 {:.number .read-only}
- 获取当前系统年份。
- CurrentMonth 当前月份 {:..number .read-only}
- 获取当前系统月份(1-12)。
- CurrentDay 当前日期 {:..number .read-only}
- 获取当前系统日期。
使用示例
基础日期选择
当 打开日历按钮.被点击
设置 当前日期 = WheelCalendar1.获取当前日期
设置 年 = 选择列表项 当前日期 1
设置 月 = 选择列表项 当前日期 2
设置 日 = 选择列表项 当前日期 3
调用 WheelCalendar1.打开轮盘 年 月 日
处理日期选择
当 WheelCalendar1.日期选择 年 月 日
设置 选中年份 = 年
设置 选中月份 = 月
设置 选中日期 = 日
设置 日期文本 = 年 & "年" & 月 & "月" & 日 & "日"
设置 选择结果标签.文本 = "您选择了: " & 日期文本
日期验证和设置
当 设置特定日期按钮.被点击
设置 目标年 = 2025
设置 目标月 = 12
设置 目标日 = 25
调用 WheelCalendar1.设置日期 目标年 目标月 目标日
年龄计算
当 计算年龄按钮.被点击
设置 出生年 = 1990
设置 出生月 = 6
设置 出生日 = 15
设置 年龄信息 = WheelCalendar1.计算年龄 出生年 出生月 出生日
设置 年龄 = 选择列表项 年龄信息 1
设置 月数 = 选择列表项 年龄信息 2
设置 天数 = 选择列表项 年龄信息 3
设置 年龄文本 = WheelCalendar1.获取年龄文本 出生年 出生月 出生日
显示通知 年龄文本
生日倒计时
当 生日倒计时按钮.被点击
设置 出生年 = 1995
设置 出生月 = 8
设置 出生日 = 20
设置 倒计时天数 = WheelCalendar1.获取生日倒计时 出生年 出生月 出生日
如果 倒计时天数 = 0 则
显示通知 "今天是您的生日!🎉"
否则
显示通知 "距离您的生日还有 " & 倒计时天数 & " 天"
主题自定义
当 自定义主题按钮.被点击
调用 WheelCalendar1.设置主题颜色 0x2196F3 // 蓝色主题
调用 WheelCalendar1.设置今日颜色 0xFF9800 // 橙色今日
调用 WheelCalendar1.设置选中颜色 0x4CAF50 // 绿色选中
显示通知 "主题已自定义"
日期范围限制
当 设置日期范围按钮.被点击
// 设置只能选择2020年到2030年之间的日期
调用 WheelCalendar1.设置最小日期 2020 1 1
调用 WheelCalendar1.设置最大日期 2030 12 31
显示通知 "日期范围已限制为2020-2030年"
调度应用示例
当 预约按钮.被点击
调用 WheelCalendar1.打开轮盘 2025 12 25 // 默认显示圣诞节
当 WheelCalendar1.日期选择 年 月 日
设置 预约日期文本 = "预约日期: " & 年 & "年" & 月 & "月" & 日 & "日"
设置 预约标签.文本 = 预约日期文本
// 计算距离预约的天数
设置 当前日期列表 = WheelCalendar1.获取当前日期
// 这里可以添加日期差计算逻辑
表单填写示例
当 出生日期字段.被点击
调用 WheelCalendar1.打开轮盘 1990 1 1 // 默认显示1990年
当 WheelCalendar1.日期选择 年 月 日
设置 出生日期字段.文本 = 年 & "/" & 月 & "/" & 日
自动计算年龄
自动计算年龄
定义 自动计算年龄
设置 日期文本 = 出生日期字段.文本
// 解析日期文本(假设格式为 年/月/日)
设置 年份 = 文本分割(日期文本, "/")
设置 月份 = 选择列表项 年份 2
设置 日 = 选择列表项 年份 3
设置 年 = 选择列表项 年份 1
设置 年龄文本 = WheelCalendar1.获取年龄文本 年 月份 日
设置 年龄字段.文本 = 年龄文本
高级应用场景
活动预约系统
当 选择活动日期按钮.被点击
调用 WheelCalendar1.打开轮盘
调用 WheelCalendar1.设置最小日期 2025 1 1
调用 WheelCalendar1.设置最大日期 2025 12 31
当 WheelCalendar1.日期选择 年 月 日
设置 活动日期 = 年 & "-" & 月 & "-" & 日
保存预约信息到数据库
年龄限制注册
当 注册用户按钮.被点击
调用 WheelCalendar1.打开轮盘
// 设置最小出生日期为18年前
设置 当前年份 = WheelCalendar1.当前年份
设置 最小年 = 当前年份 - 18
调用 WheelCalendar1.设置最大日期 最小年 12 31
注意事项
- 日期格式:月份使用1-12的数字格式
- 年龄计算:基于当前系统时间计算
- 生日倒计时:自动计算距离下一个生日的天数
- 主题设置:颜色值使用十六进制格式
- 版本兼容:推荐使用版本3.0,功能更完善
- 内存使用:长时间使用后建议适当释放资源
应用场景
- 调度应用:事件预约、日程安排
- 表单系统:用户注册、信息采集
- 生日应用:生日提醒、年龄验证
- 教育应用:课程安排、考试日期
- 健康应用:医疗预约、服药提醒
- 旅行应用:出行日期、酒店预订
- 社交应用:活动组织、聚会安排
版权信息
- 原作者:Still_Learning
- 原始网址:https://community.appinventor.mit.edu/t/free-wheel-calendar-spin-calendar-extension/142640
- 发布日期:2025年3月19日
文档最后更新:2025年11月20日
扫码添加客服咨询