getAdjectiveStar function

List<List<FunctionalStar>> getAdjectiveStar(
  1. AstrolabeParams params
)

安杂耀

@param solarDateStr 阳历日期字符串 @param timeIndex 时辰索引【0~12】 @param fixLeap 是否修复闰月,假如当月不是闰月则不生效 @returns 38杂耀

Implementation

List<List<FunctionalStar>> getAdjectiveStar(AstrolabeParams params) {
  final config = getConfig();
  final stars = initStars();
  final yearly =
      getHeavenlyStemAndEarthlyBranchSolarDate(
        params.solarDate,
        params.timeIndex,
        getConfig().yearDivide,
      ).yearly;

  final yearlyIndex = getYearlyStarIndex(params);
  final monthlyIndex = getMonthlyStarIndex(
    params.solarDate,
    params.timeIndex,
    params.fixLeap,
  );
  final dailyIndex = getDailyStarIndex(
    params.solarDate,
    params.timeIndex,
    params.fixLeap,
  );
  final timelyIndex = getTimelyStarIndex(params.timeIndex);

  int tianYaoIndex = monthlyIndex["tianYaoIndex"] ?? 0;
  int yueJieIndex = monthlyIndex["yueJieIndex"] ?? 0;
  int tianXingIndex = monthlyIndex["tianXingIndex"] ?? 0;
  int yinShaIndex = monthlyIndex["yinShaIndex"] ?? 0;
  int tianYueIndex = monthlyIndex["tianYueIndex"] ?? 0;
  int tianWuIndex = monthlyIndex["tianWuIndex"] ?? 0;

  int xianChiIndex = yearlyIndex["xianChiIndex"] ?? 0;
  int huaGaiIndex = yearlyIndex["huaGaiIndex"] ?? 0;
  int guChenIndex = yearlyIndex["guChenIndex"] ?? 0;
  int guaSuIndex = yearlyIndex["guaSuIndex"] ?? 0;
  int tianCaiIndex = yearlyIndex["tianCaiIndex"] ?? 0;
  int tianShouIndex = yearlyIndex["tianShouIndex"] ?? 0;
  int tianChuIndex = yearlyIndex["tianChuIndex"] ?? 0;
  int poSuiIndex = yearlyIndex["poSuiIndex"] ?? 0;
  int feiLianIndex = yearlyIndex["feiLianIndex"] ?? 0;
  int longChiIndex = yearlyIndex["longChiIndex"] ?? 0;
  int fenGeIndex = yearlyIndex["fenGeIndex"] ?? 0;
  int tianKuIndex = yearlyIndex["tianKuIndex"] ?? 0;
  int tianXuIndex = yearlyIndex["tianXuIndex"] ?? 0;
  int tianGuanIndex = yearlyIndex["tianGuanIndex"] ?? 0;
  int tianFuIndex = yearlyIndex["tianFuIndex"] ?? 0;
  int tianDeIndex = yearlyIndex["tianDeIndex"] ?? 0;
  int yueDeIndex = yearlyIndex["yueDeIndex"] ?? 0;
  int tianKongIndex = yearlyIndex["tianKongIndex"] ?? 0;
  int jieLuIndex = yearlyIndex["jieLuIndex"] ?? 0;
  int kongWangIndex = yearlyIndex["kongWangIndex"] ?? 0;
  int xunKongIndex = yearlyIndex["xunKongIndex"] ?? 0;
  int tianShangIndex = yearlyIndex["tianShangIndex"] ?? 0;
  int tianShiIndex = yearlyIndex["tianShiIndex"] ?? 0;

  int sanTaiIndex = dailyIndex["sanTaiIndex"] ?? 0;
  int baZuoIndex = dailyIndex["baZuoIndex"] ?? 0;
  int tianGuiIndex = dailyIndex["tianGuiIndex"] ?? 0;
  int enguangIndex = dailyIndex["enguangIndex"] ?? 0;

  int taiFuIndex = timelyIndex["taiFuIndex"] ?? 0;
  int fenggaoIndex = timelyIndex["fenggaoIndex"] ?? 0;

  final luanXinMaps = getLuanXiIndex(getMyEarthlyBranchNameFrom(yearly[1]));
  int hongLuanIndex = luanXinMaps["hongLuanIndex"] ?? 0;
  int tianXiIndex = luanXinMaps["tianXiIndex"] ?? 0;

  final suiqian12 = getYearly12(params.solarDate)['suiqian12'] ?? [];
  final longdeIndex = suiqian12.indexOf(StarName.longDe);
  final jieKongIndex = yearlyIndex['jieKongIndex'] ?? -1;
  final jieShaAdjIndex = yearlyIndex['jieShaAdjIndex'] ?? -1;
  final nianjieIndex = yearlyIndex['nianJieIndex'] ?? -1;
  final daHaoIndex = yearlyIndex['daHaoIndex'] ?? -1;

  stars[hongLuanIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('hongLuan'),
        type: StarType.flower,
        scope: Scope.origin,
      ),
    ),
  );
  stars[tianXiIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('tianXi'),
        type: StarType.flower,
        scope: Scope.origin,
      ),
    ),
  );
  stars[tianYaoIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('tianYao'),
        type: StarType.flower,
        scope: Scope.origin,
      ),
    ),
  );
  stars[xianChiIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('xianChi'),
        type: StarType.flower,
        scope: Scope.origin,
      ),
    ),
  );
  stars[yueJieIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('jieShen'),
        type: StarType.helper,
        scope: Scope.origin,
      ),
    ),
  );
  stars[sanTaiIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('sanTai'),
        type: StarType.adjective,
        scope: Scope.origin,
      ),
    ),
  );
  stars[baZuoIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('baZuo'),
        type: StarType.adjective,
        scope: Scope.origin,
      ),
    ),
  );
  stars[enguangIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('engGuang'),
        type: StarType.adjective,
        scope: Scope.origin,
      ),
    ),
  );
  stars[tianGuiIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('tianGui'),
        type: StarType.adjective,
        scope: Scope.origin,
      ),
    ),
  );
  stars[longChiIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('longChi'),
        type: StarType.adjective,
        scope: Scope.origin,
      ),
    ),
  );
  stars[fenGeIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('fengGe'),
        type: StarType.adjective,
        scope: Scope.origin,
      ),
    ),
  );
  stars[tianCaiIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('tianCai'),
        type: StarType.adjective,
        scope: Scope.origin,
      ),
    ),
  );
  stars[tianShouIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('tianShou'),
        type: StarType.adjective,
        scope: Scope.origin,
      ),
    ),
  );
  stars[taiFuIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('taiFu'),
        type: StarType.adjective,
        scope: Scope.origin,
      ),
    ),
  );
  stars[fenggaoIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('fengGao'),
        type: StarType.adjective,
        scope: Scope.origin,
      ),
    ),
  );
  stars[tianWuIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('tianWu'),
        type: StarType.adjective,
        scope: Scope.origin,
      ),
    ),
  );
  stars[huaGaiIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('huaGai'),
        type: StarType.adjective,
        scope: Scope.origin,
      ),
    ),
  );
  stars[tianGuanIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('tianGuan'),
        type: StarType.adjective,
        scope: Scope.origin,
      ),
    ),
  );
  stars[tianFuIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('tianFu'),
        type: StarType.adjective,
        scope: Scope.origin,
      ),
    ),
  );
  stars[tianChuIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('tianChu'),
        type: StarType.adjective,
        scope: Scope.origin,
      ),
    ),
  );
  stars[tianYueIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('tianYue'),
        type: StarType.adjective,
        scope: Scope.origin,
      ),
    ),
  );
  stars[tianDeIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('tianDe'),
        type: StarType.adjective,
        scope: Scope.origin,
      ),
    ),
  );
  stars[yueDeIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('yueDe'),
        type: StarType.adjective,
        scope: Scope.origin,
      ),
    ),
  );
  stars[tianKongIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('tianKong'),
        type: StarType.adjective,
        scope: Scope.origin,
      ),
    ),
  );
  stars[xunKongIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('xunKong'),
        type: StarType.adjective,
        scope: Scope.origin,
      ),
    ),
  );
  if (config.algorithm == Algorithm.zhongZhou) {
    // 中州派特有的星耀
    stars[longdeIndex].add(
      FunctionalStar(
        Star(
          name: getStarNameFrom('longDe'),
          type: StarType.adjective,
          scope: Scope.origin,
        ),
      ),
    );
    stars[jieKongIndex].add(
      FunctionalStar(
        Star(
          name: getStarNameFrom('jieKong'),
          type: StarType.adjective,
          scope: Scope.origin,
        ),
      ),
    );
    stars[jieShaAdjIndex].add(
      FunctionalStar(
        Star(
          name: getStarNameFrom('jieSha'),
          type: StarType.adjective,
          scope: Scope.origin,
        ),
      ),
    );
    stars[daHaoIndex].add(
      FunctionalStar(
        Star(
          name: StarName.daHao,
          type: StarType.adjective,
          scope: Scope.origin,
        ),
      ),
    );
  } else {
    stars[jieLuIndex].add(
      FunctionalStar(
        Star(
          name: getStarNameFrom('jieLu'),
          type: StarType.adjective,
          scope: Scope.origin,
        ),
      ),
    );
    stars[kongWangIndex].add(
      FunctionalStar(
        Star(
          name: getStarNameFrom('kongWang'),
          type: StarType.adjective,
          scope: Scope.origin,
        ),
      ),
    );
  }
  stars[guChenIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('guChen'),
        type: StarType.adjective,
        scope: Scope.origin,
      ),
    ),
  );
  stars[guaSuIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('guaSu'),
        type: StarType.adjective,
        scope: Scope.origin,
      ),
    ),
  );
  stars[feiLianIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('feiLian'),
        type: StarType.adjective,
        scope: Scope.origin,
      ),
    ),
  );
  stars[poSuiIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('poSui'),
        type: StarType.adjective,
        scope: Scope.origin,
      ),
    ),
  );
  stars[tianXingIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('tianXing'),
        type: StarType.adjective,
        scope: Scope.origin,
      ),
    ),
  );
  stars[yinShaIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('yinSha'),
        type: StarType.adjective,
        scope: Scope.origin,
      ),
    ),
  );
  stars[tianKuIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('tianKu'),
        type: StarType.adjective,
        scope: Scope.origin,
      ),
    ),
  );
  stars[tianXuIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('tianXu'),
        type: StarType.adjective,
        scope: Scope.origin,
      ),
    ),
  );
  stars[tianShiIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('tianShi'),
        type: StarType.adjective,
        scope: Scope.origin,
      ),
    ),
  );
  stars[tianShangIndex].add(
    FunctionalStar(
      Star(
        name: getStarNameFrom('tianShang'),
        type: StarType.adjective,
        scope: Scope.origin,
      ),
    ),
  );
  stars[nianjieIndex].add(
    FunctionalStar(
      Star(name: StarName.nianJie, type: StarType.helper, scope: Scope.origin),
    ),
  );
  return stars;
}