Show HN: Moon Phase Algorithms for C, Lua, Awk, JavaScript, etc.
a year ago
- #programming
- #moon-phase
- #astronomy
- 一段代码片段集合,用多种编程语言计算月相。
- 支持的语言包括C/C++、Rust、Zig、Lua、JavaScript、Python、awk和bc。
- 函数接收时间输入(如Unix纪元秒数),返回月龄弧度值。
- 通过公式(1-cos(x))/2计算月球表面受照比例。
- 月龄弧度值乘以约29.5可转换为天数。
- 结合受照比例和角度确定相位索引,用于命名和表情符号表示。
- 所有实现均为自包含的纯算法,基于80年代John Walker的moontool算法。
- 包含测试用例,展示受照比例和百分比的计算效果。