序:我们的排盘系统基本做好了。就剩下两个问题 地藏十神排法 大运起始或者说几岁上运算法了

需要的文章:

Java 计算节气的类

八字易经算法之用JAVA实现生旺死绝和十神

这里说下就可以了

地支藏干 子藏癸 卯藏乙 午藏丁己  酉藏辛
      
     寅藏 甲丙戊  巳藏 丙庚戊  申藏 庚壬戊  亥藏 甲壬
     
       丑藏 辛癸己 辰藏 癸乙戊  未藏 乙丁己  戌藏 丁辛戊

//排此人四柱十神生旺死绝

比   印   日元   劫   <- 这里直接用四柱干支计算 
       乾造  庚    己    庚    辛
           辰    卯    午    巳    
        藏干  乙戊癸  乙    己丁   庚丙戊  <- 这里直接用藏干计算
            才枭伤  才    印官   比杀枭  <- 这里直接用藏干计算
       地势  养    胎    沐浴   长生   <- 藏干不算生旺死绝
       纳音  白蜡金  城墙土  路旁土  白蜡金

比如看见年支上的辰对照上面口诀 返回癸乙戊

起大运周岁
     *
     * 大运排法: 阳男阴女顺排, 阴男阳女逆排, 离出生日最近的气节。 三天折合一岁计, 即一天折合四个月, 一小时折合五天. 计算时,
     * 如起运总数为18天, 被3除, 等于6, 即为6岁起大运. 如为19天, 则为6岁4个月起大运.

直接上代码了:

首先我做个公共类,用来普及八字知识的:

/** To change this template, choose Tools | Templates* and open the template in the editor.*/
package luozhuangpaipan;/**八字公共类** @author luozhuang 大师♂罗莊*/
public class LuozhuangcommonClass {/*** 返回甲子纳音** @param paramString 甲子* @return 纳音*/public static String jiazinaying(String paramString) {if ((paramString.equals("甲子")) || (paramString.equals("乙丑"))) {return "海中金";}if ((paramString.equals("丙寅")) || (paramString.equals("丁卯"))) {return "炉中火";}if ((paramString.equals("戊辰")) || (paramString.equals("己巳"))) {return "大林木";}if ((paramString.equals("庚午")) || (paramString.equals("辛未"))) {return "路旁土";}if ((paramString.equals("壬申")) || (paramString.equals("癸酉"))) {return "剑锋金";}if ((paramString.equals("甲戌")) || (paramString.equals("乙亥"))) {return "山头火";}if ((paramString.equals("丙子")) || (paramString.equals("丁丑"))) {return "涧下水";}if ((paramString.equals("戊寅")) || (paramString.equals("己卯"))) {return "城头土";}if ((paramString.equals("庚辰")) || (paramString.equals("辛巳"))) {return "白蜡金";}if ((paramString.equals("壬午")) || (paramString.equals("癸未"))) {return "杨柳木";}if ((paramString.equals("甲申")) || (paramString.equals("乙酉"))) {return "泉中水";}if ((paramString.equals("丙戌")) || (paramString.equals("丁亥"))) {return "屋上土";}if ((paramString.equals("戊子")) || (paramString.equals("己丑"))) {return "霹雳火";}if ((paramString.equals("庚寅")) || (paramString.equals("辛卯"))) {return "松柏木";}if ((paramString.equals("壬辰")) || (paramString.equals("癸巳"))) {return "长流水";}if ((paramString.equals("甲午")) || (paramString.equals("乙未"))) {return "沙中金";}if ((paramString.equals("丙申")) || (paramString.equals("丁酉"))) {return "山下火";}if ((paramString.equals("戊戌")) || (paramString.equals("己亥"))) {return "平地木";}if ((paramString.equals("庚子")) || (paramString.equals("辛丑"))) {return "壁上土";}if ((paramString.equals("壬寅")) || (paramString.equals("癸卯"))) {return "金箔金";}if ((paramString.equals("甲辰")) || (paramString.equals("乙巳"))) {return "佛灯火";}if ((paramString.equals("丙午")) || (paramString.equals("丁未"))) {return "天河水";}if ((paramString.equals("戊申")) || (paramString.equals("己酉"))) {return "大驿土";}if ((paramString.equals("庚戌")) || (paramString.equals("辛亥"))) {return "钗钏金";}if ((paramString.equals("壬子")) || (paramString.equals("癸丑"))) {return "桑柘木";}if ((paramString.equals("甲寅")) || (paramString.equals("乙卯"))) {return "大溪水";}if ((paramString.equals("丙辰")) || (paramString.equals("丁巳"))) {return "沙中土";}if ((paramString.equals("戊午")) || (paramString.equals("己未"))) {return "天上火";}if ((paramString.equals("庚申")) || (paramString.equals("辛酉"))) {return "石榴木";}if ((paramString.equals("壬戌")) || (paramString.equals("癸亥"))) {return "大海水";}return "";}/***    地支藏干 子藏癸 卯藏乙 午藏丁己  酉藏辛*    *    寅藏 甲丙戊  巳藏 丙庚戊  申藏 庚壬戊  亥藏 甲壬*    *    丑藏 辛癸己 辰藏 癸乙戊  未藏 乙丁己  戌藏 丁辛戊* @param dizhi* @return*/public static String[] dizhuang(String dizhi) {String[] returnstring = new String[3];if (dizhi.equals("子")) {returnstring[0] = "癸";}if (dizhi.equals("卯")) {returnstring[0] = "乙";}if (dizhi.equals("午")) {returnstring[0] = "丁";returnstring[1] = "己";}if (dizhi.equals("酉")) {returnstring[0] = "辛";}if (dizhi.equals("寅")) {returnstring[0] = "甲";returnstring[1] = "丙";returnstring[2] = "戊";}if (dizhi.equals("巳")) {returnstring[0] = "丙";returnstring[1] = "庚";returnstring[2] = "戊";}if (dizhi.equals("申")) {returnstring[0] = "庚";returnstring[1] = "壬";returnstring[2] = "戊";}if (dizhi.equals("亥")) {returnstring[0] = "甲";returnstring[1] = "壬";}if (dizhi.equals("丑")) {returnstring[0] = "辛";returnstring[1] = "癸";returnstring[2] = "己";}if (dizhi.equals("辰")) {returnstring[0] = "癸";returnstring[1] = "乙";returnstring[2] = "戊";}if (dizhi.equals("未")) {returnstring[0] = "乙";returnstring[1] = "丁";returnstring[2] = "己";}if (dizhi.equals("戌")) {returnstring[0] = "丁";returnstring[1] = "辛";returnstring[2] = "戊";}return returnstring;}/*** 十天干生旺死绝表** 天干 长生 沐浴 冠带 临官 帝旺 衰 病 死 墓 绝 胎 养      ** 甲 亥 子 丑 寅 卯 辰 巳 午 未 申 酉 戌* 丙 寅 卯 辰 巳 午 未 申 酉 戌 亥 子 丑* 戊 寅 卯 辰 巳 午 未 申 酉 戌 亥 子 丑* 庚 巳 午 未 申 酉 戌 亥 子 丑 寅 卯 辰* 壬 申 酉 戌 亥 子 丑 寅 卯 辰 巳 午 未* 乙 午 巳 辰 卯 寅 丑 子 亥 戌 酉 申 未* 丁 酉 申 未 午 巳 辰 卯 寅 丑 子 亥 戌* 己 酉 申 未 午 巳 辰 卯 寅 丑 子 亥 戌* 辛 子 亥 戌 酉 申 未 午 巳 辰 卯 寅 丑* 癸 卯 寅 丑 子 亥 戌 酉 申 未 午 巳 辰** @param paramString1* @param paramString2* @return*/public static String shengwang(String paramString1, String paramString2) {if (((paramString1.equals("甲")) && (paramString2.equals("亥"))) || ((paramString1.equals("丙")) && (paramString2.equals("寅"))) || ((paramString1.equals("戊")) && (paramString2.equals("寅"))) || ((paramString1.equals("庚")) && (paramString2.equals("巳"))) || ((paramString1.equals("壬")) && (paramString2.equals("申"))) || ((paramString1.equals("乙")) && (paramString2.equals("午"))) || ((paramString1.equals("丁")) && (paramString2.equals("酉"))) || ((paramString1.equals("己")) && (paramString2.equals("酉"))) || ((paramString1.equals("辛")) && (paramString2.equals("子"))) || ((paramString1.equals("癸")) && (paramString2.equals("卯")))) {return "长";}if (((paramString1.equals("甲")) && (paramString2.equals("子"))) || ((paramString1.equals("丙")) && (paramString2.equals("卯"))) || ((paramString1.equals("戊")) && (paramString2.equals("卯"))) || ((paramString1.equals("庚")) && (paramString2.equals("午"))) || ((paramString1.equals("壬")) && (paramString2.equals("酉"))) || ((paramString1.equals("乙")) && (paramString2.equals("巳"))) || ((paramString1.equals("丁")) && (paramString2.equals("申"))) || ((paramString1.equals("己")) && (paramString2.equals("申"))) || ((paramString1.equals("辛")) && (paramString2.equals("亥"))) || ((paramString1.equals("癸")) && (paramString2.equals("寅")))) {return "沐";}if (((paramString1.equals("甲")) && (paramString2.equals("丑"))) || ((paramString1.equals("丙")) && (paramString2.equals("辰"))) || ((paramString1.equals("戊")) && (paramString2.equals("辰"))) || ((paramString1.equals("庚")) && (paramString2.equals("未"))) || ((paramString1.equals("壬")) && (paramString2.equals("戌"))) || ((paramString1.equals("乙")) && (paramString2.equals("辰"))) || ((paramString1.equals("丁")) && (paramString2.equals("未"))) || ((paramString1.equals("己")) && (paramString2.equals("未"))) || ((paramString1.equals("辛")) && (paramString2.equals("戌"))) || ((paramString1.equals("癸")) && (paramString2.equals("丑")))) {return "冠";}if (((paramString1.equals("甲")) && (paramString2.equals("寅"))) || ((paramString1.equals("丙")) && (paramString2.equals("巳"))) || ((paramString1.equals("戊")) && (paramString2.equals("巳"))) || ((paramString1.equals("庚")) && (paramString2.equals("申"))) || ((paramString1.equals("壬")) && (paramString2.equals("亥"))) || ((paramString1.equals("乙")) && (paramString2.equals("卯"))) || ((paramString1.equals("丁")) && (paramString2.equals("午"))) || ((paramString1.equals("己")) && (paramString2.equals("午"))) || ((paramString1.equals("辛")) && (paramString2.equals("酉"))) || ((paramString1.equals("癸")) && (paramString2.equals("子")))) {return "临";}if (((paramString1.equals("甲")) && (paramString2.equals("卯"))) || ((paramString1.equals("丙")) && (paramString2.equals("午"))) || ((paramString1.equals("戊")) && (paramString2.equals("午"))) || ((paramString1.equals("庚")) && (paramString2.equals("酉"))) || ((paramString1.equals("壬")) && (paramString2.equals("子"))) || ((paramString1.equals("乙")) && (paramString2.equals("寅"))) || ((paramString1.equals("丁")) && (paramString2.equals("巳"))) || ((paramString1.equals("己")) && (paramString2.equals("巳"))) || ((paramString1.equals("辛")) && (paramString2.equals("申"))) || ((paramString1.equals("癸")) && (paramString2.equals("亥")))) {return "帝";}if (((paramString1.equals("甲")) && (paramString2.equals("辰"))) || ((paramString1.equals("丙")) && (paramString2.equals("未"))) || ((paramString1.equals("戊")) && (paramString2.equals("未"))) || ((paramString1.equals("庚")) && (paramString2.equals("戌"))) || ((paramString1.equals("壬")) && (paramString2.equals("丑"))) || ((paramString1.equals("乙")) && (paramString2.equals("丑"))) || ((paramString1.equals("丁")) && (paramString2.equals("辰"))) || ((paramString1.equals("己")) && (paramString2.equals("辰"))) || ((paramString1.equals("辛")) && (paramString2.equals("未"))) || ((paramString1.equals("癸")) && (paramString2.equals("戌")))) {return "衰";}if (((paramString1.equals("甲")) && (paramString2.equals("巳"))) || ((paramString1.equals("丙")) && (paramString2.equals("申"))) || ((paramString1.equals("戊")) && (paramString2.equals("申"))) || ((paramString1.equals("庚")) && (paramString2.equals("亥"))) || ((paramString1.equals("壬")) && (paramString2.equals("寅"))) || ((paramString1.equals("乙")) && (paramString2.equals("子"))) || ((paramString1.equals("丁")) && (paramString2.equals("卯"))) || ((paramString1.equals("己")) && (paramString2.equals("卯"))) || ((paramString1.equals("辛")) && (paramString2.equals("午"))) || ((paramString1.equals("癸")) && (paramString2.equals("酉")))) {return "病";}if (((paramString1.equals("甲")) && (paramString2.equals("午"))) || ((paramString1.equals("丙")) && (paramString2.equals("酉"))) || ((paramString1.equals("戊")) && (paramString2.equals("酉"))) || ((paramString1.equals("庚")) && (paramString2.equals("子"))) || ((paramString1.equals("壬")) && (paramString2.equals("卯"))) || ((paramString1.equals("乙")) && (paramString2.equals("亥"))) || ((paramString1.equals("丁")) && (paramString2.equals("寅"))) || ((paramString1.equals("己")) && (paramString2.equals("寅"))) || ((paramString1.equals("辛")) && (paramString2.equals("巳"))) || ((paramString1.equals("癸")) && (paramString2.equals("申")))) {return "死";}if (((paramString1.equals("甲")) && (paramString2.equals("未"))) || ((paramString1.equals("丙")) && (paramString2.equals("戌"))) || ((paramString1.equals("戊")) && (paramString2.equals("戌"))) || ((paramString1.equals("庚")) && (paramString2.equals("丑"))) || ((paramString1.equals("壬")) && (paramString2.equals("辰"))) || ((paramString1.equals("乙")) && (paramString2.equals("戌"))) || ((paramString1.equals("丁")) && (paramString2.equals("丑"))) || ((paramString1.equals("己")) && (paramString2.equals("丑"))) || ((paramString1.equals("辛")) && (paramString2.equals("辰"))) || ((paramString1.equals("癸")) && (paramString2.equals("未")))) {return "墓";}if (((paramString1.equals("甲")) && (paramString2.equals("申"))) || ((paramString1.equals("丙")) && (paramString2.equals("亥"))) || ((paramString1.equals("戊")) && (paramString2.equals("亥"))) || ((paramString1.equals("庚")) && (paramString2.equals("寅"))) || ((paramString1.equals("壬")) && (paramString2.equals("巳"))) || ((paramString1.equals("乙")) && (paramString2.equals("酉"))) || ((paramString1.equals("丁")) && (paramString2.equals("子"))) || ((paramString1.equals("己")) && (paramString2.equals("子"))) || ((paramString1.equals("辛")) && (paramString2.equals("卯"))) || ((paramString1.equals("癸")) && (paramString2.equals("午")))) {return "绝";}if (((paramString1.equals("甲")) && (paramString2.equals("酉"))) || ((paramString1.equals("丙")) && (paramString2.equals("子"))) || ((paramString1.equals("戊")) && (paramString2.equals("子"))) || ((paramString1.equals("庚")) && (paramString2.equals("卯"))) || ((paramString1.equals("壬")) && (paramString2.equals("午"))) || ((paramString1.equals("乙")) && (paramString2.equals("申"))) || ((paramString1.equals("丁")) && (paramString2.equals("亥"))) || ((paramString1.equals("己")) && (paramString2.equals("亥"))) || ((paramString1.equals("辛")) && (paramString2.equals("寅"))) || ((paramString1.equals("癸")) && (paramString2.equals("巳")))) {return "胎";}if (((paramString1.equals("甲")) && (paramString2.equals("戌"))) || ((paramString1.equals("丙")) && (paramString2.equals("丑"))) || ((paramString1.equals("戊")) && (paramString2.equals("丑"))) || ((paramString1.equals("庚")) && (paramString2.equals("辰"))) || ((paramString1.equals("壬")) && (paramString2.equals("未"))) || ((paramString1.equals("乙")) && (paramString2.equals("未"))) || ((paramString1.equals("丁")) && (paramString2.equals("戌"))) || ((paramString1.equals("己")) && (paramString2.equals("戌"))) || ((paramString1.equals("辛")) && (paramString2.equals("丑"))) || ((paramString1.equals("癸")) && (paramString2.equals("辰")))) {return "养";}return "";}/*** 判断相害 地支六害 子未害 丑午害 寅巳害 卯辰害 申亥害 酉戌害** @param paramString1* @param paramString2* @return*/public static boolean xianghai(String paramString1, String paramString2) {return ((paramString1.equals("子")) && (paramString2.equals("未"))) || ((paramString1.equals("未")) && (paramString2.equals("子"))) || ((paramString1.equals("丑")) && (paramString2.equals("午"))) || ((paramString1.equals("午")) && (paramString2.equals("丑"))) || ((paramString1.equals("寅")) && (paramString2.equals("巳"))) || ((paramString1.equals("巳")) && (paramString2.equals("寅"))) || ((paramString1.equals("卯")) && (paramString2.equals("辰"))) || ((paramString1.equals("辰")) && (paramString2.equals("卯"))) || ((paramString1.equals("戌")) && (paramString2.equals("酉"))) || ((paramString1.equals("酉")) && (paramString2.equals("戌"))) || ((paramString1.equals("申")) && (paramString2.equals("亥"))) || ((paramString1.equals("亥")) && (paramString2.equals("申")));}/*** 地支相刑 子卯刑 寅巳申刑 丑未戌刑 辰午丑亥自刑** @param paramString1* @param paramString2* @return*/public static boolean xiangxing(String paramString1, String paramString2) {return ((paramString1.equals("子")) && (paramString2.equals("卯"))) || ((paramString1.equals("卯")) && (paramString2.equals("子"))) || ((paramString1.equals("丑")) && (paramString2.equals("未"))) || ((paramString1.equals("未")) && (paramString2.equals("丑"))) || ((paramString1.equals("丑")) && (paramString2.equals("戌"))) || ((paramString1.equals("戌")) && (paramString2.equals("丑"))) || ((paramString1.equals("未")) && (paramString2.equals("戌"))) || ((paramString1.equals("戌")) && (paramString2.equals("未"))) || ((paramString1.equals("巳")) && (paramString2.equals("申"))) || ((paramString1.equals("申")) && (paramString2.equals("巳"))) || ((paramString1.equals("巳")) && (paramString2.equals("寅"))) || ((paramString1.equals("寅")) && (paramString2.equals("巳"))) || ((paramString1.equals("申")) && (paramString2.equals("寅"))) || ((paramString1.equals("寅")) && (paramString2.equals("申"))) || ((paramString1.equals("辰")) && (paramString2.equals("辰"))) || ((paramString1.equals("午")) && (paramString2.equals("午"))) || ((paramString1.equals("酉")) && (paramString2.equals("酉"))) || ((paramString1.equals("亥")) && (paramString2.equals("亥")));}/*** 子、寅、辰、午、申、戌为阳支;丑卯巳未酉亥为阴支** @param paramString* @return*/public static String yinyang(String paramString) {if ((paramString.equals("子")) || (paramString.equals("寅")) || (paramString.equals("辰")) || (paramString.equals("午")) || (paramString.equals("申")) || (paramString.equals("戌"))) {return "阳";}if ((paramString.equals("丑")) || (paramString.equals("卯")) || (paramString.equals("巳")) || (paramString.equals("未")) || (paramString.equals("酉")) || (paramString.equals("亥"))) {return "阴";}return "";}/*** 天干五行 甲乙同属木, 甲为阳, 乙为阴 丙丁同属火, 丙为阳, 丁为阴 戊己同属土, 戊为阳, 己为阴 庚辛同属金, 庚为阳, 辛为阴* 壬癸同属水, 壬为阳, 癸为阴** @param paramString* @return*/public static String tianganwuxing(String paramString) {if ((paramString.equals("甲")) || (paramString.equals("乙"))) {return "木";}if ((paramString.equals("丙")) || (paramString.equals("丁"))) {return "火";}if ((paramString.equals("戊")) || (paramString.equals("己"))) {return "土";}if ((paramString.equals("庚")) || (paramString.equals("辛"))) {return "金";}if ((paramString.equals("壬")) || (paramString.equals("癸"))) {return "水";}return "";}/*** 地支五行 亥子属水,巳午属火,寅卯属木,申酉属金,辰丑未戌属土,丑未为阴土,辰戌为阳土,辰丑为湿土,未戌为燥土。** @param paramString* @return*/public static String dizhiwuxing(String paramString) {if ((paramString.equals("寅")) || (paramString.equals("卯"))) {return "木";}if ((paramString.equals("巳")) || (paramString.equals("午"))) {return "火";}if ((paramString.equals("丑")) || (paramString.equals("辰")) || (paramString.equals("未")) || (paramString.equals("戌"))) {return "土";}if ((paramString.equals("申")) || (paramString.equals("酉"))) {return "金";}if ((paramString.equals("亥")) || (paramString.equals("子"))) {return "水";}return "";}/*** 甲、丙、戊、庚、壬为阳;乙、丁、己、辛、癸为阴** @param paramString* @return*/public static String tianganyinyang(String paramString) {if ((paramString.equals("甲")) || (paramString.equals("丙")) || (paramString.equals("戊")) || (paramString.equals("庚")) || (paramString.equals("壬"))) {return "阳";}if ((paramString.equals("乙")) || (paramString.equals("丁")) || (paramString.equals("己")) || (paramString.equals("辛")) || (paramString.equals("癸"))) {return "阴";}return "";}/*** 桃花位:** @param P*/public static void taohua(String[] bazi) {String returnString = null;if ((bazi[2].equals("寅")) || (bazi[2].equals("午")) || (bazi[2].equals("戌"))) {returnString += "卯";}if ((bazi[2].equals("申")) || (bazi[2].equals("子")) || (bazi[2].equals("辰"))) {returnString += "酉";}if ((bazi[2].equals("亥")) || (bazi[2].equals("卯")) || (bazi[2].equals("未"))) {returnString += "子";}if ((bazi[2].equals("巳")) || (bazi[2].equals("酉")) || (bazi[2].equals("丑"))) {returnString += "午";}}/*** 六十甲子太岁神** @param paramString 年柱* @return*/public static String tianshui(String paramString) {if (paramString.equals("甲子")) {return "金办将军";}if (paramString.equals("乙丑")) {return "陈材将军";}if (paramString.equals("丙寅")) {return "耿章将军";}if (paramString.equals("丁卯")) {return "沈兴将军";}if (paramString.equals("戊辰")) {return "赵达将军";}if (paramString.equals("己巳")) {return "郭灿将军";}if (paramString.equals("庚午")) {return "王清将军";}if (paramString.equals("辛未")) {return "李素将军";}if (paramString.equals("壬申")) {return "刘旺将军";}if (paramString.equals("癸酉")) {return "康志将军";}if (paramString.equals("甲戌")) {return "施广将军";}if (paramString.equals("乙亥")) {return "任保将军";}if (paramString.equals("丙子")) {return "郭嘉将军";}if (paramString.equals("丁丑")) {return "汪文将军";}if (paramString.equals("戊寅")) {return "曾光将军";}if (paramString.equals("己卯")) {return "龙仲将军";}if (paramString.equals("庚辰")) {return "董德将军";}if (paramString.equals("辛巳")) {return "郑但将军";}if (paramString.equals("壬午")) {return "陆明将军";}if (paramString.equals("癸未")) {return "魏仁将军";}if (paramString.equals("甲申")) {return "方杰将军";}if (paramString.equals("乙酉")) {return "蒋崇将军";}if (paramString.equals("丙戌")) {return "白敏将军";}if (paramString.equals("丁亥")) {return "封济将军";}if (paramString.equals("戊子")) {return "邹镗将军";}if (paramString.equals("己丑")) {return "潘佐将军";}if (paramString.equals("庚寅")) {return "邬桓将军";}if (paramString.equals("辛卯")) {return "范宁将军";}if (paramString.equals("壬辰")) {return "彭泰将军";}if (paramString.equals("癸巳")) {return "徐华将军";}if (paramString.equals("甲午")) {return "章词将军";}if (paramString.equals("乙未")) {return "杨仙将军";}if (paramString.equals("丙申")) {return "管仲将军";}if (paramString.equals("丁酉")) {return "唐杰将军";}if (paramString.equals("戊戌")) {return "姜武将军";}if (paramString.equals("己亥")) {return "谢焘将军";}if (paramString.equals("庚子")) {return "虞起将军";}if (paramString.equals("辛丑")) {return "杨信将军";}if (paramString.equals("壬寅")) {return "贤谔将军";}if (paramString.equals("癸卯")) {return "皮时将军";}if (paramString.equals("甲辰")) {return "李诚将军";}if (paramString.equals("乙巳")) {return "吴遂将军";}if (paramString.equals("丙午")) {return "文哲将军";}if (paramString.equals("丁未")) {return "缪丙将军";}if (paramString.equals("戊申")) {return "徐浩将军";}if (paramString.equals("己酉")) {return "程宝将军";}if (paramString.equals("庚戌")) {return "倪秘将军";}if (paramString.equals("辛亥")) {return "叶坚将军";}if (paramString.equals("壬子")) {return "丘德将军";}if (paramString.equals("癸丑")) {return "朱得将军";}if (paramString.equals("甲寅")) {return "张朝将军";}if (paramString.equals("乙卯")) {return "万清将军";}if (paramString.equals("丙辰")) {return "辛亚将军";}if (paramString.equals("丁巳")) {return "杨彦将军";}if (paramString.equals("戊午")) {return "黎卿将军";}if (paramString.equals("己未")) {return "傅党将军";}if (paramString.equals("庚申")) {return "毛梓将军";}if (paramString.equals("辛酉")) {return "石政将军";}if (paramString.equals("壬戌")) {return "洪充将军";}if (paramString.equals("癸亥")) {return "虞程将军";}return "";}/*** 所谓命主文昌位,就是根据个人的生辰八字来推算,按照这个方法推算出来的文昌位是跟随个人,永不改变的。个人的命主文昌位如何确定?有这样一个推算的歌诀:甲岁亥巳曲与昌,乙逢马鼠焕文章,丙戊申寅庚亥巳,六丁鸡兔贵非常,壬遇虎猴癸兔西,辛宜子上马名扬。歌诀的意思是:出生在甲年的人,文昌位在东南。出生在乙年,文昌位在正南。出生在丙年,文昌位在西南。出生在丁年,文昌位在正西。出生在戊年,文昌位在西南。出生在己年,文昌位在正西。出生在庚年,文昌位在西北。出生在辛年,文昌位在正北。出生在壬年,文昌位在东北。出生在癸年,文昌位在正东。* 人又是如何得知自己出生在那年?这里有一套公式可以推算。凡尾数是4的年份,如2004年,即是甲年。以此类推,尾数是5的年份,即是乙年。尾数是6的年份,即是丙年。尾数是7的年份,即是丁年。尾数是8的年份,即是戊年。尾数是9的年份,即是己年。尾数是0的年份,即是庚年。尾数是1的年份,即是辛年。尾数是2的年份,即是壬年。尾数是3的年份,即是癸年。例如1013年,即是癸年。以自己的出生年份对应上面两个公式来推算,即可知道自己的命主文昌位在哪个位置。** @param year 年份* @return 文昌位:*/public static String wenchangwei(String year) {String returnString = "文昌位:";if (String.valueOf(year).substring(3, 4).equals("4")) {returnString += "东南";}if (String.valueOf(year).substring(3, 4).equals("5")) {returnString += "南方";}if (String.valueOf(year).substring(3, 4).equals("6")) {returnString += "西南";}if (String.valueOf(year).substring(3, 4).equals("8")) {returnString += "西南";}if (String.valueOf(year).substring(3, 4).equals("7")) {returnString += "西方";}if (String.valueOf(year).substring(3, 4).equals("9")) {returnString += "西方";}if (String.valueOf(year).substring(3, 4).equals("0")) {returnString += "西北";}if (String.valueOf(year).substring(3, 4).equals("1")) {returnString += "北方";}if (String.valueOf(year).substring(3, 4).equals("2")) {returnString += "东北";}if (String.valueOf(year).substring(3, 4).equals("3")) {returnString += "东方";}return returnString;}}
/** To change this template, choose Tools | Templates* and open the template in the editor.*/
package luozhuangpaipan;import java.text.ParseException;
import java.util.Calendar;
import java.util.Date;
import luozhuangChineseEra.Lunar;
import luozhuanghehun.BaZi;
import luozhuanghehun.LuozhuangshenshaHehun;
import luozhuanghehun.luozhuanglvhehun;/*** 地藏和大运起始排盘** @author luozhuang 大师♂罗莊*/
public class Luozhuangdizhang {LuozhuangshenshaHehun myLuozhuangshenshaHehun = new LuozhuangshenshaHehun();luozhuanglvhehun myluozhuanglvhehun = new luozhuanglvhehun();Luozhuangpaipandayun myLuozhuangpaipandayun = new Luozhuangpaipandayun();LuozhuangshengSha myLuozhuangshengSha = new LuozhuangshengSha();luozhuangpaipanshisheng myluozhuangpaipanshisheng = new luozhuangpaipanshisheng();/*** 起大运周岁** 大运排法: 阳男阴女顺排, 阴男阳女逆排, 离出生日最近的气节。 三天折合一岁计, 即一天折合四个月, 一小时折合五天. 计算时,* 如起运总数为18天, 被3除, 等于6, 即为6岁起大运. 如为19天, 则为6岁4个月起大运.** @param bazi 八字阳历* @return*/public long dayunkaishi(Calendar bazi, String nianzhu, luozhuanglvhehun.sex isman) {long returnvalue = 0;//甲、丙、戊、庚、壬之年为阳,乙、丁、己、辛、癸之年为阴//阴年生男子(或阳年生女子),大运逆行否则顺行if (LuozhuangcommonClass.tianganyinyang(nianzhu).equals("阳")) {if (isman == luozhuanglvhehun.sex.man) {//顺行returnvalue = Lunar.getaftersolarTerm(bazi.get(Calendar.YEAR), bazi.getTime());} else {returnvalue = Lunar.getbeforesolarTerm(bazi.get(Calendar.YEAR), bazi.getTime());}} else {if (isman == luozhuanglvhehun.sex.man) {returnvalue = Lunar.getbeforesolarTerm(bazi.get(Calendar.YEAR), bazi.getTime());} else {returnvalue = Lunar.getaftersolarTerm(bazi.get(Calendar.YEAR), bazi.getTime());}}returnvalue = returnvalue / 3;//我们就不细算到月日return returnvalue;}/**** @param man 生日 yyyy-MM-dd HH* @return* @throws ParseException*/public String paipan(String man, luozhuanglvhehun.sex isman) throws ParseException {Calendar mancal;try {mancal = myLuozhuangshenshaHehun.getCalendarfromString(man, "yyyy-MM-dd HH");//原来的private 方法改了下} catch (ParseException ex) {return "输入不正确" + ex.getMessage();}return paipan(mancal, isman);}public String paipan(Calendar cal, luozhuanglvhehun.sex isman) throws ParseException {BaZi lunar = new BaZi(cal);System.out.println("此人农历的日期【" + lunar.toString() + "】");/*** 很多地方都是按照23:00-1:00为子时这是不对的。* 子时24.00-2.00,丑时2.00-4.00,寅时4.00-6.00,卯时6.00-8.00,* 辰时8.00-10.00,巳时10.00-12.00,午时12.00-14.00,未时14.00-16.00* 申时16.00-18.00,酉时18.00-20.00,戌时20.00-22.00,亥时22.00-24.00**/int time = cal.get(Calendar.HOUR_OF_DAY) / 2;System.out.println("此人八字【" + lunar.getYearGanZhi(time) + "】");//获取生肖System.out.println("此人的农历生肖【" + lunar.animalsYear() + "】");String GanZhi = lunar.getYearGanZhi(time);//取八字String[] tempchar = GanZhi.split(",");//我修改原来的,用,分割String ganziyear = tempchar[0];//年柱String ganzimonth = tempchar[1];//月柱String ganziday = tempchar[2];//日柱String ganzitime = tempchar[3];//时柱//五行纳音System.out.println("");String soundyear = myLuozhuangshenshaHehun.getnumsix(ganziyear);String soundmonth = myLuozhuangshenshaHehun.getnumsix(ganzimonth);String soundday = myLuozhuangshenshaHehun.getnumsix(ganziday);String soundtime = myLuozhuangshenshaHehun.getnumsix(ganzitime);System.out.println("五行纳音");System.out.print(soundyear);System.out.print(" ");System.out.print(soundmonth);System.out.print(" ");System.out.print(soundday);System.out.print(" ");System.out.print(soundtime);System.out.print(" ");System.out.println("");//排食神生旺死绝//用日干 日支分别查找位于表的对应值//修改原文的类方法字段属性为public//我的表格均是按照顺序比如//十天干生旺死绝表 十神概念按顺序排列//查找某一行就可以查到对应值String[] shengsibiao = {"甲", "丙", "戊", "庚", "壬", "乙", "丁", "己", "辛", "癸"};//十天干生旺死绝表顺序//十天干生旺死绝表 用日干查表int shengsibiaoshunxu = myLuozhuangpaipandayun.getyuezhuStart(shengsibiao, ganziday.substring(0, 1));//十神表按顺序int shishengbiaoshunxu = myLuozhuangpaipandayun.getyuezhuStart(BaZi.Gan, ganziday.substring(0, 1));shengsibiaoshunxu++;shishengbiaoshunxu++;String[] DayunArray = myLuozhuangpaipandayun.Dayun(ganziyear, ganzimonth, isman);//排此人四柱十神生旺死绝//       比    印    日元   劫   <- 这里直接用四柱干支计算 //乾造  庚    己    庚    辛//    辰    卯    午    巳    //藏干  乙戊癸  乙    己丁   庚丙戊  <- 这里直接用藏干计算//    才枭伤  才    印官   比杀枭  <- 这里直接用藏干计算//地势  养    胎    沐浴   长生   <- 藏干不算生旺死绝//纳音  白蜡金  城墙土  路旁土  白蜡金System.out.println("此人四柱干支十神");System.out.print(myluozhuangpaipanshisheng.shisheng[shishengbiaoshunxu][myLuozhuangpaipandayun.getyuezhuStart(myluozhuangpaipanshisheng.shisheng[0], ganziyear.substring(0, 1))]); //十神表 用支查表System.out.print(" ");System.out.print(myluozhuangpaipanshisheng.shisheng[shishengbiaoshunxu][myLuozhuangpaipandayun.getyuezhuStart(myluozhuangpaipanshisheng.shisheng[0], ganzimonth.substring(0, 1))]); //十神表 用支查表System.out.print(" ");System.out.print("日主"); //日柱不计算!System.out.print(" ");System.out.print(myluozhuangpaipanshisheng.shisheng[shishengbiaoshunxu][myLuozhuangpaipandayun.getyuezhuStart(myluozhuangpaipanshisheng.shisheng[0], ganzitime.substring(0, 1))]); //十神表 用支查表System.out.println("");System.out.println("此人年藏干");String[] zhanggan = LuozhuangcommonClass.dizhuang(ganziyear.substring(1, 2));for (int i = 0; i < zhanggan.length; i++) {if (zhanggan[i] == null) {continue;}System.out.print(zhanggan[i]);System.out.print("");System.out.println(myluozhuangpaipanshisheng.shisheng[shishengbiaoshunxu][myLuozhuangpaipandayun.getyuezhuStart(myluozhuangpaipanshisheng.shisheng[0], zhanggan[i])]); //十神表 用支查表}zhanggan = LuozhuangcommonClass.dizhuang(ganzimonth.substring(1, 2));System.out.println("此人月藏干");for (int i = 0; i < zhanggan.length; i++) {if (zhanggan[i] == null) {continue;}System.out.print(zhanggan[i]);System.out.print("");System.out.println(myluozhuangpaipanshisheng.shisheng[shishengbiaoshunxu][myLuozhuangpaipandayun.getyuezhuStart(myluozhuangpaipanshisheng.shisheng[0], zhanggan[i])]); //十神表 用支查表}System.out.println("此人日藏干");zhanggan = LuozhuangcommonClass.dizhuang(ganziday.substring(1, 2));for (int i = 0; i < zhanggan.length; i++) {if (zhanggan[i] == null) {continue;}System.out.print(zhanggan[i]);System.out.print("");System.out.println(myluozhuangpaipanshisheng.shisheng[shishengbiaoshunxu][myLuozhuangpaipandayun.getyuezhuStart(myluozhuangpaipanshisheng.shisheng[0], zhanggan[i])]); //十神表 用支查表}System.out.println("此人时藏干");zhanggan = LuozhuangcommonClass.dizhuang(ganzitime.substring(1, 2));for (int i = 0; i < zhanggan.length; i++) {if (zhanggan[i] == null) {continue;}System.out.print(zhanggan[i]);System.out.print("");System.out.println(myluozhuangpaipanshisheng.shisheng[shishengbiaoshunxu][myLuozhuangpaipandayun.getyuezhuStart(myluozhuangpaipanshisheng.shisheng[0], zhanggan[i])]); //十神表 用支查表}String[] DayunArrayshengsi = new String[DayunArray.length];//大运十天干生旺死绝表String[] DayunArrayshisheng = new String[DayunArray.length];//大运十神表for (int i = 0; i < DayunArray.length; i++) {DayunArrayshengsi[i] = myluozhuangpaipanshisheng.shengwang[0][myLuozhuangpaipandayun.getyuezhuStart(myluozhuangpaipanshisheng.shengwang[shengsibiaoshunxu], DayunArray[i].substring(1, 2))]; //十天干生旺死绝表 用干查表DayunArrayshisheng[i] = myluozhuangpaipanshisheng.shisheng[shishengbiaoshunxu][myLuozhuangpaipandayun.getyuezhuStart(myluozhuangpaipanshisheng.shisheng[0], DayunArray[i].substring(0, 1))]; //十神表 用支查表}System.out.println("此人大运");myLuozhuangpaipandayun.pringst(DayunArray);System.out.println("此人起大运周岁:");System.out.println(dayunkaishi(cal, ganziyear.substring(0,1), isman) + "岁");System.out.println("此人大运生旺死绝");myLuozhuangpaipandayun.pringst(DayunArrayshengsi);System.out.println("此人大运十神");myLuozhuangpaipandayun.pringst(DayunArrayshisheng);return null;}/*** @param args the command line arguments*/public static void main(String[] args) throws ParseException {Luozhuangdizhang my = new Luozhuangdizhang();my.paipan("2013-3-14 20", luozhuanglvhehun.sex.man);}
}

八字易经算法之用JAVA实现 地藏十神排法相关推荐

  1. 八字易经算法之用JAVA实现完整排盘系统

    去年一天,一个朋友去看望病人回来就惊奇的告诉我,他发现和他朋友一起住院(肝胆科)的病人无一例外都是属相为虎的病人,不是大一轮就是小一轮的.这是为什么呢?   这不是什么偶然,也不是什么巧合.也许通过八 ...

  2. 八字易经算法之用JAVA实现生旺死绝和十神

    序:一直上网发现有人出软妹币求八字易经排盘系统方法或者源代码,更有此类软件竟要收费上百元. 比如:http://bbs.csdn.net/topics/220008904 我上网查找半天也没有具体八字 ...

  3. 八字易经算法之用JAVA实现日子吉凶星

    序: 有一天有个朋友来问我,怎么她家自从某天以后就一直不顺,家人不断出事. 我基本问都懒的问,掐指一算就告诉她,她娘娘是不是那天下葬了?不捡日子吧,结果那天下葬时候犯重丧日. 犯重丧下葬的人会来叫伴, ...

  4. 八字易经算法之用JAVA实现二十八星宿算命

    二十八星宿和西方十二星座一样,是个很好玩的东西. 本人对二十八星宿算命不敢苟同,不过如果各位要做个人择日的话,这玩意就如同拳法的马步这些,是基础的基础. 我经常说很多人不会择吉日,很简单星宿都不排下. ...

  5. 八字易经算法之用JAVA实现通勝十二建择日算法

    一直上网发现有人求万年历上吉凶日/择日算法或者源代码,更有此类软件竟要收费几十元. 我上网查找半天也没有具体原理的文章.   作为易学高手的我(大师♂罗莊)对告诉各位码农如何制作吉凶日/择日算法  负 ...

  6. 八字易经算法之用JAVA实现排大运

    序:一直上网发现有人出软妹币求八字易经排盘系统方法或者源代码,更有此类软件竟要收费上百元. 比如:http://bbs.csdn.net/topics/220008904 我上网查找半天也没有具体八字 ...

  7. 八字易经算法之用JAVA实现排八字神煞

    序:我上网查找半天也没有具体八字易经排盘系统原理的文章. 排盘如同武学中的马步,拳法,是基础中的基础. 作为易学高手的我(大师♂罗莊)对告诉各位码农如何八字易经排盘系统  负有不可推卸的责任. 我就细 ...

  8. 八字易经算法之用JAVA实现完整排盘系统_八字易經演算法之用JAVA實現完整排盤系統 | 學步園...

    去年一天,一個朋友去看望病人回來就驚奇的告訴我,他發現和他朋友一起住院(肝膽科)的病人無一例外都是屬相為虎的病人,不是大一輪就是小一輪的.這是為什麼呢? 這不是什麼偶然,也不是什麼巧合.也許通過八字能 ...

  9. 八字易经算法之用JAVA实现最简单的批八字算命

    其实,本文基本没有什么技术含量 本文引用类和算法大部分在 合婚算法之用JAVA实现简单级别的神煞合婚法 已经阐述清楚了. 这里只是用日柱查查数据了 不说了,上代码: 再次提醒: luozhuanghe ...

最新文章

  1. mysql 隐式失误_评“MySQL 隐式转换引起的执行结果错误”
  2. 第二阶段_第四家小节_C#基础2
  3. P3203 [HNOI2010]弹飞绵羊
  4. 【牛客 - 370A】签到题(线段树扫描线 或 STLset)(求线段并)
  5. Linux 实操———CentOS 6 安装配置 Oracle JDK 1.8
  6. Tair是一个高性能,分布式,可扩展,高可靠的key/value结构存储系统(转)
  7. 全国计算机考试一级在线模拟,2017全国计算机一级考试模拟
  8. Algs4-1.2.14实现Transaction中的equals()方法
  9. python封装sql脚本_pymysql的简单封装代码实例
  10. C罗是你人生中最好的健身教练和精神导师
  11. HDU 4565(矩阵快速幂)
  12. SuperSU二进制更新失败的解决方法
  13. wei gwei ether之间的转换关系
  14. 联想拯救者y7000p加内存条_联想 拯救者Y7000P 怎么升级内存?
  15. Isaac Sim 使用指南(一)
  16. 图片文件探究1:各种图片文件十六进制的文件头和文件尾
  17. 在线文件不落地转base64
  18. Python 调用 ImageMagick 将常规图片转成 .ico 图片
  19. 的统一,展现出更深远的思想,使读者领会更深的道理。 语言优美:所谓优美,就是指散文的语言清新明丽(也美丽
  20. 前端axios下载excel文件(二进制)的处理方法

热门文章

  1. 错误处理(一)—— 被呼叫方拒绝接收呼叫。 (异常来自 HRESULT:0x80010001 (RPC_E_CALL_REJECTED))
  2. 笔记本电脑如何设置html输出,笔记本电脑如何外接显示器 外接显示器详细步骤【详解】...
  3. 【从零开始学习YOLOv3】3. YOLOv3的数据加载机制和增强方法
  4. laravel Scout包在elasticsearch中的应用
  5. 安卓android记单词软件
  6. Burg法求解AR(p)模型参数(三)Levinson递推公式
  7. 小技巧,怎么查看数据库热度排名
  8. 多台计算机虚拟化方案,虚拟化建设解决方案
  9. 用vivo手机拍照一定要先打开这个设置,不然白浪费这么强大的手机
  10. Zerg虫族的传说[官方资料]