Ejemplo n.º 1
0
def getShenChenBaZi(year, month, day, time):
    data = ganzhi.day(year, month, day)
    print("data is neeed" + str(data))
    tianganOfDay = data[2]
    tianganOfDaySymbol = tiangans.index(tianganOfDay) + 1
    ganzhiOfTime = calculateTime(tianganOfDaySymbol, time)
    return data[0] + '-' + ganzhiOfTime
Ejemplo n.º 2
0
def build_Dayun(english_year, english_month, english_day, hour, minutes,
                sex: int):
    '''

    :param english_year:
    :param english_month:
    :param english_day:
    :param hour:
    :param minutes:
    :param sex:  1  是男,0 是女
    :return:
    '''
    lunar = ganzhi.day(english_year, english_month, english_day)
    bazi = metaphysic.getShenChenBaZi(english_year, english_month, english_day,
                                      hour)

    lunar_year = lunar[4]
    order = lunar_year % 2 ^ sex  # 判断是正序还是逆序

    birth_day = datetime.datetime(english_year, english_month, english_day,
                                  hour, minutes)

    cur_year_of_jieqi = build_jieqi_list(english_year)

    if english_month == 1 and not order:
        pre_year_jieqi = build_jieqi(english_year - 1)[-1]
        cur_year_of_jieqi.insert(0, pre_year_jieqi)

    if english_month == 12 and order:
        next_year_jieqi = build_jieqi(english_year + 1)[0]
        cur_year_of_jieqi.append(next_year_jieqi)
    # 防止逆序查找的时候,没有比生日大的节气,故使用最后一个元素初始化
    cur_jieqi = cur_year_of_jieqi[len(cur_year_of_jieqi) - 1]
    for i in range(0, len(cur_year_of_jieqi)):
        if cur_year_of_jieqi[i] > birth_day:
            cur_jieqi = (cur_year_of_jieqi[i]
                         if order else cur_year_of_jieqi[i - 1])
            break

    print(cur_jieqi)

    delta_diff = (cur_jieqi - birth_day if order else birth_day - cur_jieqi)

    shichen = delta_diff.seconds // 60 // 120

    fenzhong = delta_diff.seconds // 60 % 120

    qiyun_shichen = fenzhong

    qiyun_tian = shichen * 10

    qiyun_yue = delta_diff.days % 3

    qiyun_sui = delta_diff.days // 3

    new_form = tuple(
        reversed(
            modify_qiyun_format(qiyun_shichen, qiyun_tian, qiyun_yue * 4,
                                qiyun_sui)))

    print(bazi)

    print(lunar)

    print(new_form)

    print("您出生后 %d年%d月%d日 %d时辰后 起运" % new_form)

    print(get_niunian_list(bazi, order))