C语言程序——梅花易数年月日时起卦法

本文介绍了一位初学者如何使用C语言来实现梅花易数中基于年月日时的起卦方法。内容包括年份与生肖次序对应、农历月日处理以及时辰的转换规则,为对梅花易数感兴趣的读者提供了一个有趣的实践项目。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

初学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 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值