你好,游客 登录 注册 搜索
背景:
阅读新闻

八字易经算法之用JAVA实现 地藏十神排法 - 大师的资源

[日期:2013-03-15] 来源:  作者: [字体: ]

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

  需要的文章:

  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, 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);

    }
}






收藏 推荐 打印 | 录入:admin | 阅读:
相关新闻