getChangQuIndexByHeavenlyStem function

Map<String, int> getChangQuIndexByHeavenlyStem(
  1. HeavenlyStemName heavenlyStemName
)

通过 大限/流年 天干获取流昌流曲

  • 流昌起巳位 甲乙顺流去
  • 不用四墓宫 日月同年岁
  • 流曲起酉位 甲乙逆行踪
  • 亦不用四墓 年日月相同

@param heavenlyStemName 天干 @returns 文昌、文曲索引

Implementation

Map<String, int> getChangQuIndexByHeavenlyStem(
  HeavenlyStemName heavenlyStemName,
) {
  var changIndex = -1;
  var quIndex = -1;
  switch (heavenlyStemName) {
    case HeavenlyStemName.jiaHeavenly:
      changIndex = fixIndex(fixEarthlyBranchIndex(EarthlyBranchName.siEarthly));
      quIndex = fixIndex(fixEarthlyBranchIndex(EarthlyBranchName.youEarthly));
    case HeavenlyStemName.yiHeavenly:
      changIndex = fixIndex(fixEarthlyBranchIndex(EarthlyBranchName.wuEarthly));
      quIndex = fixIndex(fixEarthlyBranchIndex(EarthlyBranchName.shenEarthly));
    case HeavenlyStemName.bingHeavenly:
    case HeavenlyStemName.wuHeavenly:
      changIndex = fixIndex(
        fixEarthlyBranchIndex(EarthlyBranchName.shenEarthly),
      );
      quIndex = fixIndex(fixEarthlyBranchIndex(EarthlyBranchName.wuEarthly));
    case HeavenlyStemName.dingHeavenly:
    case HeavenlyStemName.jiHeavenly:
      changIndex = fixIndex(
        fixEarthlyBranchIndex(EarthlyBranchName.youEarthly),
      );
      quIndex = fixIndex(fixEarthlyBranchIndex(EarthlyBranchName.siEarthly));
    case HeavenlyStemName.gengHeavenly:
      changIndex = fixIndex(
        fixEarthlyBranchIndex(EarthlyBranchName.haiEarthly),
      );
      quIndex = fixIndex(fixEarthlyBranchIndex(EarthlyBranchName.maoEarthly));
    case HeavenlyStemName.xinHeavenly:
      changIndex = fixIndex(fixEarthlyBranchIndex(EarthlyBranchName.ziEarthly));
      quIndex = fixIndex(fixEarthlyBranchIndex(EarthlyBranchName.yinEarthly));
    case HeavenlyStemName.renHeavenly:
      changIndex = fixIndex(
        fixEarthlyBranchIndex(EarthlyBranchName.yinEarthly),
      );
      quIndex = fixIndex(fixEarthlyBranchIndex(EarthlyBranchName.ziEarthly));
    case HeavenlyStemName.guiHeavenly:
      changIndex = fixIndex(
        fixEarthlyBranchIndex(EarthlyBranchName.maoEarthly),
      );
      quIndex = fixIndex(fixEarthlyBranchIndex(EarthlyBranchName.haiEarthly));
  }
  return {"changIndex": changIndex, "quIndex": quIndex};
}