java中需要注意的东西_一些在JAVA中要注意的东西(3)

case 6:

solarday = getSolarTermNum("芒种");

if (solarday == d) ret = "芒种";

solarday = getSolarTermNum("夏至");

if (solarday == d) ret = "夏至";

break;

case 7:

solarday = getSolarTermNum("小暑");

if (solarday == d) ret = "小暑";

solarday = getSolarTermNum("大暑");

if (solarday == d) ret = "大暑";

break;

case 8:

solarday = getSolarTermNum("立秋");

if (solarday == d) ret = "立秋";

solarday = getSolarTermNum("处暑");

if (solarday == d) ret = "处暑";

break;

case 9:

solarday = getSolarTermNum("白露");

if (solarday == d) ret = "白露";

solarday = getSolarTermNum("秋分");

if (solarday == d) ret = "秋分";

break;

case 10:

solarday = getSolarTermNum("寒露");

if (solarday == d) ret = "寒露";

solarday = getSolarTermNum("霜降");

if (solarday == d) ret = "霜降";

break;

case 11:

solarday = getSolarTermNum("立冬");

if (solarday == d) ret = "立冬";

solarday = getSolarTermNum("小雪");

if (solarday == d) ret = "小雪";

break;

case 12:

solarday = getSolarTermNum("大雪");

if (solarday == d) ret = "大雪";

solarday = getSolarTermNum("冬至");

if (solarday == d) ret = "冬至";

break;

}

}

return ret;

}

public String toString() {

String year1 = "年";

String run1 = "闰";

String month1 = "月";

return cyclical() + animalsYear() + year1 + (leap ? run1 : "") + lunarMonthName[month - 1] + month1 + getChinaDayString(day);

}

public int getSolarTermNum(String name) {

double centuryValue = 0;

int centuryIndex = -1;

if (ye >= 1901 && ye <= 2000) {

centuryIndex = 0;

} else if (ye >= 2001 && ye <= 2100) {

centuryIndex = 1;

} else {

throw new RuntimeException("Not supported year:" + ye);

}

int i;

int ordinal = 0;

for (i = 0; i < SolarTerms.length; i++) {

if (SolarTerms[i].equals(name)) {

ordinal = i;

break;

}

}

centuryValue = CENTURY_ARRAY[centuryIndex][ordinal];

int dateNum = 0;

int y = ye % 100;

if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {

if (name == "小寒" || name == "大寒" || name == "立春" || name == "雨水") {

y = y - 1;

}

}

dateNum = (int) (y * D + centuryValue) - (int) (y / 4);

dateNum += specialYearOffset(ye, name);

return dateNum;

}

public int specialYearOffset(int year, String name) {

int offset = 0;

offset += getOffset(DECREASE_OFFSETMAP, year, name, -1);

offset += getOffset(INCREASE_OFFSETMAP, year, name, 1);

return offset;

}

public int getOffset(Map map, int year, String name, int offset) {

int off = 0;

Integer[] years = map.get(name);

if (null != years) {

for (int i : years) {

if (i == year) {

off = offset;

break;

}

}

}

return off;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值