getYearly12 function

Map<String, List<StarName>> getYearly12(
  1. String solarDateStr
)

流年诸星。

  • 流年岁前诸星

    • 流年地支起岁建,岁前首先是晦气,
    • 丧门贯索及官符,小耗大耗龙德继,
    • 白虎天德连吊客,病符居后须当记。
  • 安流年将前诸星(按流年地支起将星)

    • 寅午戍年将星午,申子辰年子将星,
    • 巳酉丑将酉上驻,亥卯未将卯上停。
    • 攀鞍岁驿并息神,华盖劫煞灾煞轻,
    • 天煞指背咸池续,月煞亡神次第行。

@param solarDateStr 阳历日期字符串 @returns 流年诸星从寅宫开始的顺序

Implementation

Map<String, List<StarName>> getYearly12(String solarDateStr) {
  List<StarName> jiangqian12 = List.filled(12, StarName.tai);
  List<StarName> suiqian12 = List.filled(12, StarName.tai);
  // 流年神煞应该用立春为界,但为了满足不同流派的需求允许配置
  final yearly = getHeavenlyStemAndEarthlyBranchSolarDate(
          solarDateStr, 0, getConfig().horoscopeDivide)
      .yearly;

  List<String> ts12shen = [
    suiJian,
    huiQi,
    sangMen,
    guanSuo,
    gwanFu,
    xiaoHao,
    daHao,
    longDe,
    baiHu,
    tianDe,
    diaoKe,
    bingFu,
  ];

  for (int i = 0; i < ts12shen.length; i++) {
    int idx = fixIndex(
        fixEarthlyBranchIndex(getMyEarthlyBranchNameFrom(yearly[1])) + i);
    suiqian12[idx] = getStarNameFrom(ts12shen[i]);
  }

  List<String> jq12shen = [
    jiangXin,
    panAn,
    suiYi,
    xiiShen,
    huaGai,
    jieSha,
    zhaiSha,
    tianSha,
    zhiBei,
    xianChi,
    yueSha,
    wangShen,
  ];

  int jiangQian12StartIndex =
      getJangQian12StartIndex(getMyEarthlyBranchNameFrom(yearly[1]));
  for (int i = 0; i < jq12shen.length; i++) {
    int idx = fixIndex(jiangQian12StartIndex + i);
    jiangqian12[idx] = getStarNameFrom(jq12shen[i]);
  }
  return {"jiangqian12": jiangqian12, "suiqian12": suiqian12};
}