getTimeNineStar method

NineStar getTimeNineStar()

Implementation

NineStar getTimeNineStar() {
  //顺逆
  String solarYmd = _solar!.toYmd();
  bool asc = false;
  if (solarYmd.compareTo(getJieQiSolar(I18n.getMessage('jq.dongZhi')).toYmd()) >= 0 &&
      solarYmd.compareTo(getJieQiSolar(I18n.getMessage('jq.xiaZhi')).toYmd()) < 0) {
    asc = true;
  } else if (solarYmd.compareTo(getJieQiSolar('DONG_ZHI').toYmd()) >= 0) {
    asc = true;
  }
  List<int> offset = asc ? [0, 3, 6] : [8, 5, 2];
  int start = offset[getDayZhiIndex() % 3];
  int index = asc ? (start + _timeZhiIndex) : (start + 9 - _timeZhiIndex);
  return new NineStar(index % 9);
}