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 config = getConfig();
  // 流年神煞应该用立春为界,但为了满足不同流派的需求允许配置
  final yearly =
      getHeavenlyStemAndEarthlyBranchSolarDate(
        solarDateStr,
        0,
        config.horoscopeDivide,
      ).yearly;

  // 中州派的大耗叫岁破
  List<String> ts12shen =
      config.algorithm == Algorithm.zhongZhou
          ? [
            suiJian,
            huiQi,
            sangMen,
            guanSuo,
            gwanFu,
            xiaoHao,
            suiPo,
            longDe,
            baiHu,
            tianDe,
            diaoKe,
            bingFu,
          ]
          : [
            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};
}