getSolarTerms static method

List<String> getSolarTerms(
  1. int year
)

获得某一年24节气

@param year 年 @return 24节气

Implementation

static List<String> getSolarTerms(int year) {
  List<String> solarTerms = List.filled(24, '');
  List<String> preOffset = getSolarTermsPreOffset(year - 1);
  List<String> nextOffset = getSolarTermsNextOffset(year - 1);
  System.arraycopy(preOffset, 0, solarTerms, 0, preOffset.length);
  System.arraycopy(nextOffset, 0, solarTerms, 22, nextOffset.length);

  double jd = 365.2422 * (year - 2000), q;
  for (int i = 0; i < 19; i++) {
    q = getTimeFromAngle(jd + i * 15.2, i * 15.toDouble(), 0);
    q = q + J2000 + 8 / 24; // 计算第i个节气(i=0是春分),结果转为北京时
    Time time = setFromJulian(q, true);
    solarTerms[i + 3] = time.toString() + SOLAR_TERMS[i];
  }

  return solarTerms;
}