getHuoLingIndex function
获取火星铃星索引(按年支以及时支)
- 申子辰人寅戌扬
- 寅午戌人丑卯方
- 巳酉丑人卯戌位
- 亥卯未人酉戌房
起火铃二耀先据出生年支,依口诀定火铃起子时位。
例如壬辰年卯时生人,据申子辰人寅戌扬
口诀,故火星在寅宫起子时,铃星在戌宫起子时,顺数至卯时,即火星在巳,铃星在丑。
@param earthlyBranchName 地支 @param timeIndex 时辰序号 @returns 火星、铃星索引
Implementation
Map<String, int> getHuoLingIndex(
EarthlyBranchName earthlyBranchName,
int timeIndex,
) {
var huoIndex = -1;
var lingIndex = -1;
final fixedTimeIndex = fixIndex(timeIndex);
switch (earthlyBranchName) {
case EarthlyBranchName.yinEarthly:
case EarthlyBranchName.wuEarthly:
case EarthlyBranchName.xuEarthly:
huoIndex =
fixEarthlyBranchIndex(EarthlyBranchName.chouEarthly) + fixedTimeIndex;
lingIndex =
fixEarthlyBranchIndex(EarthlyBranchName.maoEarthly) + fixedTimeIndex;
break;
case EarthlyBranchName.shenEarthly:
case EarthlyBranchName.ziEarthly:
case EarthlyBranchName.chenEarthly:
huoIndex =
fixEarthlyBranchIndex(EarthlyBranchName.yinEarthly) + fixedTimeIndex;
lingIndex =
fixEarthlyBranchIndex(EarthlyBranchName.xuEarthly) + fixedTimeIndex;
break;
case EarthlyBranchName.siEarthly:
case EarthlyBranchName.youEarthly:
case EarthlyBranchName.chouEarthly:
huoIndex =
fixEarthlyBranchIndex(EarthlyBranchName.maoEarthly) + fixedTimeIndex;
lingIndex =
fixEarthlyBranchIndex(EarthlyBranchName.xuEarthly) + fixedTimeIndex;
break;
case EarthlyBranchName.haiEarthly:
case EarthlyBranchName.weiEarthly:
case EarthlyBranchName.maoEarthly:
huoIndex =
fixEarthlyBranchIndex(EarthlyBranchName.youEarthly) + fixedTimeIndex;
lingIndex =
fixEarthlyBranchIndex(EarthlyBranchName.xuEarthly) + fixedTimeIndex;
break;
}
return {"huoIndex": fixIndex(huoIndex), "lingIndex": fixIndex(lingIndex)};
}