初学C语言,对梅花易数较感兴趣,于是想用C语言来表达梅花易数中的时间起卦法。
感兴趣的朋友也可以拿去玩一玩!
年是十二生肖中的次序,例如2022虎年只需输入3即可;
月日是农历;
时指时辰:子时23~1点,丑时1~3点,寅时3~5点,卯时5~7点,辰时7~9点,巳时9~11点,午时11~13点,未时13~15点,申时15~17点,酉时17~19点,戌时19~21点,亥时21~23点
#include <stdio.h>
#define 乾 "——\n——乾 【金】\n——\n"
#define 兑 "— —\n——兑 【金】\n——\n"
#define 离 "——\n— —离 【火】\n——\n"
#define 震 "— —\n— —震 【木】\n——\n"
#define 巽 "——\n——巽 【木】\n— —\n"
#define 坎 "— —\n——坎 【水】\n— —\n"
#define 艮 "——\n— —艮 【土】\n— —\n"
#define 坤 "— —\n— —坤 【土】\n— —\n"
#define qian "——\n——乾 体【金】\n——\n"
#define dui "— —\n——兑 体【金】\n——\n"
#define li "——\n— —离 体【火】\n——\n"
#define zhen "— —\n— —震 体【木】\n——\n"
#define xun "——\n——巽 体【木】\n— —\n"
#define kan "— —\n——坎 体【水】\n— —\n"
#define gen "——\n— —艮 体【土】\n— —\n"
#define kun "— —\n— —坤 体【土】\n— —\n"
#define qianm "——\n——乾 用【金】\n——\n"
#define duim "— —\n——兑 用【金】\n——\n"
#define lim "——\n— —离 用【火】\n——\n"
#define zhenm "— —\n— —震 用【木】\n——\n"
#define xunm "——\n——巽 用【木】\n— —\n"
#define kanm "— —\n——坎 用【水】\n— —\n"
#define genm "——\n— —艮 用【土】\n— —\n"
#define kunm "— —\n— —坤 用【土】\n— —\n"
int main(void) {
int b;
int y, m, d, t;
int up, down;
int enter;
do {
printf("请输入年,月,日,时:\n");
scanf_s("%d", &y);
scanf_s("%d", &m);
scanf_s("%d", &d);
scanf_s("%d", &t);
up = (y + m + d) % 8;
down = (y + m + d + t) % 8;
b = (y + m + d + t) % 6;
printf("本卦\n");
if (up == 1)
printf(乾);
if (up == 2)
printf(兑);
if (up == 3)
printf(离);
if (up == 4)
printf(震);
if (up == 5)
printf(巽);
if (up == 6)
printf(坎);
if (up == 7)
printf(艮);
if (up == 0)
printf(坤);
if (down == 1)
printf(乾);
if (down == 2)
printf(兑);
if (down == 3)
printf(离);
if (down == 4)
printf(震);
if (down == 5)
printf(巽);
if (down == 6)
printf(坎);
if (down == 7)
printf(艮);
if (down == 0)
printf(坤);
printf("互卦\n");
if (up == 2 && down == 5 || up == 2 && down == 1 || up == 2 && down == 5 || up == 1 && down == 1) {
printf(乾);
printf(乾);
}
if (up == 7 && down == 0 || up == 0 && down == 4 || up == 7 && down == 4 || up == 0 && down == 0) {
printf(坤);
printf(坤);
}
if (up == 3 && down == 2 || up == 4 && down == 6 || up == 4 && down == 2 || up == 3 && down == 6) {
printf(坎);
printf(离);
}
if (up == 5 && down == 3 || up == 6 && down == 7 || up == 5 && down == 7 || up == 6 && down == 3) {
printf(离);
printf(坎);
}
if (up == 0 && down == 1 || up == 7 && down == 5 || up == 7 && down == 1 || up == 0 && down == 5) {
printf(震);
printf(兑);
}
if (up == 1 && down == 0 || up == 2 && down == 4 || up == 1 && down == 4 || up == 2 && down == 0) {
printf(巽);
printf(艮);
}
if (up == 3 && down == 1 || up == 4 && down == 5 || up == 4 && down == 1 || up == 3 && down == 5) {
printf(兑);
printf(乾);
}
if (up == 0 && down == 7 || up == 7 && down == 3 || up == 0 && down == 3 || up == 7 && down == 7) {
printf(震);
printf(坎);
}
if (up == 4 && down == 0 || up == 3 && down == 4 || up == 3 && down == 0 || up == 4 && down == 4) {
printf(坎);
printf(艮);
}
if (up == 6 && down == 1 || up == 5 && down == 1 || up == 6 && down == 5 || up == 5 && down == 5) {
printf(离);
printf(兑);
}
if (up == 1 && down == 6 || up == 1 && down == 2 || up == 2 && down == 6 || up == 2 && down == 2) {
printf(巽);
printf(离);
}
if (up == 3 && down == 3 || up == 4 && down == 3 || up == 3 && down == 7 || up == 4 && down == 7) {
printf(兑);
printf(巽);
}
if (up == 6 && down == 6 || up == 5 && down == 6 || up == 6 && down == 2 || up == 5 && down == 2) {
printf(艮);
printf(震);
}
if (up == 7 && down == 6 || up == 0 && down == 6 || up == 0 && down == 2 || up == 7 && down == 2) {
printf(坤);
printf(震);
}
if (up == 6 && down == 4 || up == 6 && down == 0 || up == 5 && down == 0 || up == 5 && down == 4) {
printf(艮);
printf(坤);
}
if (up == 1 && down == 3 || up == 1 && down == 7 || up == 2 && down == 3 || up == 2 && down == 7) {
printf(乾);
printf(巽);
}
printf("变卦\n\n");
if (up == 1 && down == 1 && b == 1) {
printf(qian);
printf(xunm);
}
if (up == 1 && down == 1 && b == 2) {
printf(qian);
printf(lim);
}
if (up == 1 && down == 1 && b == 3) {
printf(qian);
printf(duim);
}
if (up == 1 && down == 1 && b == 4) {
printf(xunm);
printf(qian);
}
if (up == 1 && down == 1 && b == 5) {
printf(lim);
printf(qian);
}
if (up == 1 && down == 1 && b == 0) {
printf(duim);
printf(qian);
}
if (up == 2 && down == 1 && b == 1) {
printf(dui);
printf(xunm);
}
if (up == 2 && down == 1 && b == 2) {
printf(dui);
printf(lim);
}
if (up == 2 && down == 1 && b == 3) {
printf(dui);
printf(duim);
}
if (up == 2 && down == 1 && b == 4) {
printf(kanm);
printf(qian);
}
if (up == 2 && down == 1 && b == 5) {
printf(zhenm);
printf(qian);
}
if (up == 2 && down == 1 && b == 0) {
printf(qianm);
printf(qian);
}
if (up == 3 && down == 1 && b == 1) {
printf(li);
printf(xunm);
}
if (up == 3 && down == 1 && b == 2) {
printf(li);
printf(lim);
}
if (up == 3 && down == 1 && b == 3) {
printf(li);
printf(duim);
}
if (up == 3 && down == 1 && b == 4) {
printf(genm);
printf(qian);
}
if (up == 3 && down == 1 && b == 5) {
printf(qianm);
printf(qian);
}
if (up == 3 && down == 1 && b == 0) {
printf(zhenm);
printf(qian);
}
if (up == 4 && down == 1 && b == 1) {
printf(zhen);
printf(xunm);
}
if (up == 4 && down == 1 && b == 2) {
printf(zhen);
printf(lim);
}
if (up == 4 && down == 1 && b == 3) {
printf(zhen);
printf(duim);
}
if (up == 4 && down == 1 && b == 4) {
printf(kunm);
printf(qian);
}
if (up == 4 && down == 1 && b == 5) {
printf(duim);
printf(qian);
}
if (up == 4 && down == 1 && b == 0) {
printf(lim);
printf(qian);
}
if (up == 5 && down == 1 && b == 1) {
printf(xun);
printf(xunm);
}
if (up == 5 && down == 1 && b == 2) {
printf(xun);
printf(lim);
}
if (up == 5 && down == 1 && b == 3) {
printf(xun);
printf(duim);
}
if (up == 5 && down == 1 && b == 4) {
printf(qianm);
printf(qian);
}
if (up == 5 && down == 1 && b == 5) {
printf(genm);
printf(qian);
}
if (up == 5 && down == 1 && b == 0) {
printf(kanm);
printf(qian);
}
if (up == 6 && down == 1 && b == 1) {
printf(kan);
printf(xunm);
}
if (up == 5 && down == 1 && b == 2) {
printf(kan);
printf(lim);
}
if (up == 6 && down == 1 && b == 3) {
printf(kan);
printf(duim);
}
if (up == 6 && down == 1 && b == 4) {
printf(duim);
printf(qian);
}
if (up == 6 && down