WheelView 拓展:滚轮选择框扩展,滚轮日历选择框和旋转日历扩展

« 返回首页

滚轮选择框扩展

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 和主界面

Wheel Calendar Logo 主界面

输出示例

输出示例1 输出示例2

Spin Calendar V3 界面

Spin Calendar V3 示例1 Spin Calendar V3 示例2

函数

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. 日期格式:月份使用1-12的数字格式
  2. 年龄计算:基于当前系统时间计算
  3. 生日倒计时:自动计算距离下一个生日的天数
  4. 主题设置:颜色值使用十六进制格式
  5. 版本兼容:推荐使用版本3.0,功能更完善
  6. 内存使用:长时间使用后建议适当释放资源

应用场景

  • 调度应用:事件预约、日程安排
  • 表单系统:用户注册、信息采集
  • 生日应用:生日提醒、年龄验证
  • 教育应用:课程安排、考试日期
  • 健康应用:医疗预约、服药提醒
  • 旅行应用:出行日期、酒店预订
  • 社交应用:活动组织、聚会安排

版权信息

  • 原作者:Still_Learning
  • 原始网址:https://community.appinventor.mit.edu/t/free-wheel-calendar-spin-calendar-extension/142640
  • 发布日期:2025年3月19日

文档最后更新:2025年11月20日

文档反馈