python代码 :三元九运九星命卦速算
#三元九运九星命卦速算
#古代人没有计算器,只能用翻山掌或者野马跳涧法推算,现在有计算器可以秒算命卦。
#上元甲子一宫连,中元起巽下兑间;上五中二下八女,男逆女顺起根源。
#按后天八卦分九个宫:1、北宫:坎(水);2、西南宫:坤(土);3、东宫:震(木);4、东南宫:巽(木);
#5、中宫:男坤女艮(土);6、西北宫:乾(金);7、西宫:兑(金);8、东北宫:艮(土);9、南宫:离(火)
#天干为甲、乙、丙、丁、戊、己、庚、辛、壬、癸
tg={4:'甲',5:'乙',6:'丙',7:'丁',8:'戊',9:'己',0:'庚',1:'辛',2:'壬',3:'癸'}
#地支为子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥
dz={4:'子',5:'丑',6:'寅',7:'卯',8:'辰',9:'巳',10:'午',11:'未',0:'申',1:'酉',2:'戌',3:'亥'}
#男命
nan={1:'坎水',0:'坤土',8:'震木',7:'巽木',6:'坤土',5:'乾金',4:'兑金',3:'艮土',2:'离火'}
#女命
nv={6:'坎水',7:'坤土',8:'震木',0:'巽木',1:'艮土',2:'乾金',3:'兑金',4:'艮土',5:'离火'}
#0000年是庚申年,男命是坤土年,女命是巽木年,用本年或者出生年除以9,余数对应的上表就是年命。
print('请输入年份')
year=int(input())
print(str(year)+'年为'+tg[year%10]+dz[year%12]+'年,男命为'+nan[year%9]+',女命为'+nv[year%9])
转换Java代码:
import java.util.Scanner;
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 定义天干、地支、男命和女命的映射表
HashMap<Integer, String> tg = new HashMap<Integer, String>() {{
put(4, "甲");
put(5, "乙");
put(6, "丙");
put(7, "丁");
put(8, "戊");
put(9, "己");
put(0, "庚");
put(1, "辛");
put(2, "壬");
put(3, "癸");
}};
HashMap<Integer, String> dz = new HashMap<Integer, String>() {{
put(4, "子");
put(5, "丑");
put(6, "寅");
put(7, "卯");
put(8, "辰");
put(9, "巳");
put(10, "午");
put(11, "未");
put(0, "申");
put(1, "酉");
put(2, "戌");
put(3, "亥");
}};
HashMap<Integer, String> nan = new HashMap<Integer, String>() {{
put(1, "坎水");
put(0, "坤土");
put(8, "震木");
put(7, "巽木");
put(6, "坤土");
put(5, "乾金");
put(4, "兑金");
put(3, "艮土");
put(2, "离火");
}};
HashMap<Integer, String> nv = new HashMap<Integer, String>() {{
put(6, "坎水");
put(7, "坤土");
put(8, "震木");
put(0, "巽木");
put(1, "艮土");
put(2, "乾金");
put(3, "兑金");
put(4, "艮土");
put(5, "离火");
}};
System.out.println("请输入年份:");
int year = scanner.nextInt();
System.out.printf("%d年为%s%s年,男命为%s,女命为%s",
year, tg.get(year % 10), dz.get(year % 12),
nan.get(year % 9), nv.get(year % 9));
}
}