HarmonyOS应用《玄象》开发实战:SolarTerms.ets 节气时刻表的 Map<string, SolarTermInfo> 数据结构

📅 2026/7/27 23:41:28 👁️ 阅读次数 📝 编程学习
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