
冬至计算机算法(Java)
做节日相关消息推送的时候,碰到个不固定日期的节气:冬至。
在网上搜索了很多文章都没能找到对应的计算算法,后面好不容易找到了计算公式,特此记录相关代码。
/*** 冬至日计算机算法:支持1700 ~ 3100年的日期计算* */
public static void main(String[] args) {for (int year=2000; year < 2100; year++) {if (year == 2767) {System.out.println("23");}if (year == 2227||year == 3068) {System.out.println("22");}if (year < 1700) {throw new RuntimeException("1700年以前暂时不支持");}if (year >= 3100) {throw new RuntimeException("3100年以后暂时不支持");}double[] coefficient = { 22.11, 22.39, 22.66, 21.90, 22.18, 22.472, 22.72, 21.995, 22.27, 22.51, 22.75, 22.02, 22.27, 22.519,22.80 };int mod = year % 100;System.out.println(year + "年冬至是12月" + (int)(mod * 0.2422 + coefficient[year / 100 - 17] - mod / 4) + "号");}
}
有帮助到您的请点个赞~
本文发布于:2024-03-25 11:33:06,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/1731173741496793.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
| 留言与评论(共有 0 条评论) |