getMajorStarBySolarDate function

String getMajorStarBySolarDate(
  1. String solarDateStr,
  2. int timeIndex, [
  3. bool fixLeap = true
])

通过阳历获取命宫主星

@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(',');
}