HarmonyOS应用《玄象》开发实战:SolarTerms.ets 节气时刻表的 Map<string, SolarTermInfo> 数据结构
阅读时长:约 18 分钟 | 难度:★★★★☆ | 篇章:第 8 篇 · 天文历法模块
对应源码:entry/src/main/ets/common/utils/SolarTerms.ets
前言
节气数据是玄象项目天文历法模块的基础。SolarTerms.ets工具类通过Map<string, SolarTermInfo>映射表存储 24 个节气的完整信息,支持按名称查节气、获取当前节气、按季节筛选等功能。本篇将深入剖析玄象项目节气数据结构的实现:从SolarTermInfo接口设计、Map映射表构建、getCurrentTerm当前节气查询,到节气数据的季节分类。
提示:玄象项目节气数据包含名称、拼音、时间范围、物候、农事等完整信息。
一、SolarTermInfo 接口
1.1 数据结构
interfaceSolarTermInfo{name:string;// 节气名(如"立春")pinyin:string;// 拼音(如"Lì Chūn")season:string;// 季节(春/夏/秋/冬)order:number;// 该季节中的顺序(1-6)dateRange:string;// 时间范围(如"2月3日-5日")houHou:string;// 物候描述nongShi:string;// 农事活动}二、映射表
2.1 Map 构建
staticreadonlyTERM_MAP:Map<string,SolarTermInfo>=newMap(SolarTerms.SOLAR_TERMS.map(t=>[t.name,t]));三、节气查询设计总结
3.1 查询方法
| 方法 | 用途 | 返回 |
|---|---|---|
getTermByName(name) | 按名称查 | SolarTermInfo |
getCurrentTerm() | 查当前节气 | SolarTermInfo |
getTermsBySeason(season) | 按季节筛 | SolarTermInfo[] |
总结
本篇以玄象项目SolarTerms.ets为蓝本,深入剖析了 ArkTS 节气数据结构的实现:从SolarTermInfo接口设计、Map映射表构建、getCurrentTerm当前节气查询,到节气数据的季节分类。掌握这套节气数据结构,您就能为任何 HarmonyOS 应用构建完整的节气数据体系。
如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!
相关资源:
- 二十四节气:wikipedia.org/wiki/二十四节气
- 开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net
