java实现二十四节气计算

import java.util.HashMap;
import java.util.Map;

/**
*@author:518ad-ccn
*date:Dec 13, 2011
*describe:24节气
*注:程序中使用到的计算节气公式、节气世纪常量等相关信息参照http://www.360doc.com/content/11/0106/22/5281066_84591519.shtml,
*程序的运行得出的节气结果绝大多数是正确的,有少数部份是有误差的
*/
public class _24SolarTerms {
private static final double D = 0.2422;
private final static Map<String,Integer[]> INCREASE_OFFSETMAP = new HashMap<String, Integer[]>();//+1偏移
private final static Map<String,Integer[]> DECREASE_OFFSETMAP = new HashMap<String, Integer[]>();//-1偏移

/**24节气**/
private static enum SolarTermsEnum {
LICHUN,//--立春
YUSHUI,//--雨水
JINGZHE,//--惊蛰
CHUNFEN,//春分
QINGMING,//清明
GUYU,//谷雨
LIXIA,//立夏
XIAOMAN,//小满
MANGZHONG,//芒种
XIAZHI,//夏至
XIAOSHU,//小暑
DASHU,//大暑
LIQIU,//立秋
CHUSHU,//处暑
BAILU,//白露
QIUFEN,//秋分
HANLU,//寒露
SHUANGJIANG,//霜降
LIDONG,//立冬
XIAOXUE,//小雪
DAXUE,//大雪
DONGZHI,//冬至
XIAOHAN,//小寒
DAHAN;//大寒
}

static {
DECREASE_OFFSETMAP.put(SolarTermsEnum.YUSHUI.name(), new Integer[]{2026});//雨水
INCREASE_OFFSETMAP.put(SolarTermsEnum.CHUNFEN.name(), new Integer[]{2084});//春分
INCREASE_OFFSETMAP.put(SolarTermsEnum.XIAOMAN.name(), new Integer[]{2008});//小满
INCREASE_OFFSETMAP.put(SolarTermsEnum.MANGZHONG.name(), new Integer[]{1902});//芒种
INCREASE_OFFSETMAP.put(SolarTermsEnum.XIAZHI.name(), new Integer[]{1928});//夏至
INCREASE_OFFSETMAP.put(SolarTermsEnum.XIAOSHU.name(), new Integer[]{1925,2016});//小暑
INCREASE_OFFSETMAP.put(SolarTermsEnum.DASHU.name(), new Integer[]{1922});//大暑
INCREASE_OFFSETMAP.put(SolarTermsEnum.LIQIU.name(), new Integer[]{2002});//立秋
INCR
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值