getMajorStarBySolarDate function
通过阳历获取命宫主星
@version v1.2.1
@param solarDateStr 阳历日期【YYYY-M-D】 @param timeIndex 出生时辰序号【0~12】 @param fixLeap 是否调整闰月情况【默认 true】,假入调整闰月,则闰月的前半个月算上个月,后半个月算下个月 @returns 命宫主星
Implementation
String getMajorStarBySolarDate(
String solarDateStr,
int timeIndex, [
bool fixLeap = true,
]) {
print('solarDateStr $solarDateStr timeIndex $timeIndex fixLeap $fixLeap');
final params = AstrolabeParams(
solarDate: solarDateStr,
timeIndex: timeIndex,
fixLeap: fixLeap,
gender: GenderName.male,
);
final bodyIndex = getSoulAndBody(params).bodyIndex;
final majorStars = getMajorStar(params);
final stars = majorStars[bodyIndex].where(
(star) => star.type == StarType.major,
);
if (stars.isNotEmpty) {
return stars.map((star) => star.name.title).join(',');
}
return majorStars[fixIndex(bodyIndex + 6)]
.where((star) => star.type == StarType.major)
.map((star) => star.name.title)
.join(',');
}