精华内容
下载资源
问答
  • 五行 字 查询
    千次阅读
    2014-02-08 11:04:02

    缘起:几年前,小儿出生的几天之内,我需要为他起名字。名字很重要吗 一文中我谈到了名字的重要性。

    作为易学高手的我(大师♂罗莊)对告诉各位码农如何制作取名系统 负有不可推卸的责任。


    本次课程

    原理很简单:



    姓名五行生克法: 在数理中包含有五行生克的原理,故以数理来剖析姓名时,必须把各数理所属的五行要素辨认清楚。
    在辩认五行时,只计l——10的数,超过10的数,就去掉十份数而取其个位数, 这样仍还原成l——10之间的数;如果个位数为0,则计为10即可。
    以数理来划分五行列表如下: 数始于1而终于10。按传统的五行理论来划分,则: 以1、2为木,1为阳木,2为阴木。
    以3、4为火,3为阳火,4为阴火。 以5、6为土,5为阳土,6为阴土。 以7、8为金,7为阳金,8为阴金。
    以9、10为水,9为阳水,10为阴水。


    需要注意的是名字要用繁体笔画不是简体笔画,本文也是用繁体笔画


    直接上代码就可以了,为了方便取数,我把名字五行直接存数组不用计算了

     

    package javaluozhuangtestname;
    
    import java.util.ArrayList;
    
    /**汉字五行笔画库
     *
     * @author luozhuang 大师♂罗莊
     */
    public class BhWxLib {
    
        private ArrayList<MetaLibItem> libs = new ArrayList();
    
        /**
         * 以数理来划分五行列表如下: 数始于1而终于10。按传统的五行理论来划分,则:     以1、2为木,1为阳木,2为阴木。    
         * 以3、4为火,3为阳火,4为阴火。     以5、6为土,5为阳土,6为阴土。     以7、8为金,7为阳金,8为阴金。    
         * 以9、10为水,9为阳水,10为阴水。
         */
        public enum wuxing {
    
            木,//0
            火,// 1
            土,// 2
            金,//3
            水,//4
        }
    
        /**
         * 姓名五行生克法: 在数理中包含有五行生克的原理,故以数理来剖析姓名时,必须把各数理所属的五行要素辨认清楚。
         * 在辩认五行时,只计l——10的数,超过10的数,就去掉十份数而取其个位数, 这样仍还原成l——10之间的数;如果个位数为0,则计为10即可。
         *
         * @param paramInt
         * @return
         */
        public int get_wx_idx(int paramInt) {
            if (paramInt > 10) {
                paramInt = paramInt % 10;
    
            }
            switch (paramInt) {
                default:
                    return -1;
                case 1:
                case 2:
                    return 0;
                case 3:
                case 4:
                    return 1;
                case 5:
                case 6:
                    return 2;
                case 7:
                case 8:
                    return 3;
                case 0:
                case 9:
                    return 4;
            }
    
        }
    
        BhWxLib() {
            this.libs.add(new MetaLibItem(1, 2, "一乙"));
            this.libs.add(new MetaLibItem(2, 0, "九几"));
            this.libs.add(new MetaLibItem(2, 1, "二丁了力乃刁"));
            this.libs.add(new MetaLibItem(2, 2, "又"));
            this.libs.add(new MetaLibItem(2, 3, "七人十入刀"));
            this.libs.add(new MetaLibItem(2, 4, "卜八乜"));
            this.libs.add(new MetaLibItem(3, 0, "久工口乞干弓广"));
            this.libs.add(new MetaLibItem(3, 1, "大女巳孒"));
            this.libs.add(new MetaLibItem(3, 2, "也于丸己土山个"));
            this.libs.add(new MetaLibItem(3, 3, "三小千士川上才寸刃夕尸"));
            this.libs.add(new MetaLibItem(3, 4, "万下亡凡子"));
            this.libs.add(new MetaLibItem(4, 0, "介牛五公月元及孔今亢卞欠犬斤牙勾勻木气"));
            this.libs.add(new MetaLibItem(4, 1, "天六中日丑斗内太屯丹井弔支止之午尺火从丰"));
            this.libs.add(new MetaLibItem(4, 2, "尹允王友引尤厄曰毋切予"));
            this.libs.add(new MetaLibItem(4, 3, "仁升氏心什仇手仍少殳戈爪双"));
            this.libs.add(new MetaLibItem(4, 4, "夫匹巴文方互分比勿反歹户毛父幻不仆化云毋壬水片币仆"));
            this.libs.add(new MetaLibItem(5, 0, "古加卉玉甲可功瓜甘丘句外去巧札术本卯未"));
            this.libs.add(new MetaLibItem(5, 1, "代旦只冬立田叮他令召台尼奴冉左丙另叹"));
            this.libs.add(new MetaLibItem(5, 2, "右央由用永以仔瓦幼叶戊"));
            this.libs.add(new MetaLibItem(5, 3, "生史仙占册申仕四世市司出仟且示石失尻刊正主矢"));
            this.libs.add(new MetaLibItem(5, 4, "民弘布平皮丕付玄弁白必目包禾半兄北弗末皿匆母穴疋氷夯"));
            this.libs.add(new MetaLibItem(6, 0, "交旭价吉仰曲共伎伉企各戎机考件朽竹朵匡朱"));
            this.libs.add(new MetaLibItem(6, 1, "亘打老至自尖仲灯匠多耳宅虫同年劣全光弛兆旨肉礼"));
            this.libs.add(new MetaLibItem(6, 2, "亦宇夷因衣有羊伊安圭伍艮地吐圳充羽戌灰优"));
            this.libs.add(new MetaLibItem(6, 3, "字次守如在而西舟再存夙色早式先冲丞吏寺旬死庄此任州臣曳列舌众"));
            this.libs.add(new MetaLibItem(6, 4, "好休伏行仿合刑血名后回亥妃百米冰并牟伐牝兇凶危汀印收向后"));
            this.libs.add(new MetaLibItem(7, 0, "言见見更克角角君吟吾旱改谷究岑我估妓局劫告杆攻却忌困杖杜吴吳杌肖村材杞何杏启"));
            this.libs.add(new MetaLibItem(7, 1, "良甸男佟里牢廷吕呂住志呈佃伶灶体灸利足町李豆吞弄努低彤但妥卵弟佗求杉巫免采卤听"));
            this.libs.add(new MetaLibItem(7, 2, "邑佑完位秃禿役余似延均坑岐冶坍辰坟坊坂牡医"));
            this.libs.add(new MetaLibItem(7, 3, "成助车車作伸身孜佐秀伺坐束宋序赤妆妝私妊壮壯串些吹声忍走辛巡初吢佘系兑酉判系"));
            this.libs.add(new MetaLibItem(7, 4, "希孚孝宏妙伴甫伯兵尾呆步每妣亨贝貝别妤况形忘佛忙含妨否罕坔江戒池汝冷尨妍"));
            this.libs.add(new MetaLibItem(8, 0, "狂抗技快玖佳供佶枝析姑炆炘宜奇欣居岳固其果劻季卷斧昂纠糾京空孤官肯券屈卧臥乖穹祁林杵杻东東竺枝具佼杼松羌析杷杭板杯枚昏忽柿"));
            this.libs.add(new MetaLibItem(8, 1, "两兩肋投侗佻侍侈例岱征妮姐典卓直来來到长長定知忠制争爭冽帖店忝底念的妾弩乳政徂戽折狄決昆易炊咎帑炎旻罔籴昊隶丽炉"));
            this.libs.add(new MetaLibItem(8, 2, "抑依侑往夜委奄昀宛旺于於亚亞盂艾坤岩坦坡坪忧岭"));
            this.libs.add(new MetaLibItem(8, 3, "忱沖抄侃使孥姗姓昇尚宗社受虱事承始昌宙舍青叔昔取刹刷儿兒妻所凭垂刺妬社祀姒金庚刻周卒"));
            this.libs.add(new MetaLibItem(8, 4, "扶沐汾版抛没汶侔佩彼妹武朋孟秉命享和府门門奉明岸沛房放并並味幸咊或帛服氓効弦物虎盲呼非卹阜把昊汽沅岡卦沂汲沚宓沃雨协協汪沁沙沈牧状狀冼庙奋弥怀"));
            this.libs.add(new MetaLibItem(9, 0, "侠俠俄拘拒柑柯科纪紀祈皆军軍彦彥契姱羿禺轨軌建癸冠客玩肝哄架界劲勁姜剋看竿故急姣虹姬斫肖柱柳相柘柴芒柄柏面"));
            this.libs.add(new MetaLibItem(9, 1, "侣侶俊待律沺招抽拐纣紂祉重贞貞炤昭亮耐帝南亭盾段泰奏炭致突订訂怠怒赴柬怨昱勅姞祉映歪炳炫厘类邓"));
            this.libs.add(new MetaLibItem(9, 2, "衩耶押约約怡威勇音要禹囿屋畏姻哀幽宥昶韦韋姚奎垣型盆"));
            this.libs.add(new MetaLibItem(9, 3, "衫信俗促侵咨拆拙秋是首则則哉前省思帅帥宣叙页頁俞春星食性砂削查柔施姿室昨甚牲峙俟昝厍厙枯怪度姹姝"));
            this.libs.add(new MetaLibItem(9, 4, "侯保便係衍後河法泊波泓泯抱拍秒红紅飞飛厚屏香美风風品盈巷盼盃勃眇眉炫昧皇表封负負某扁玫毗甭宦羑哈咸奔狐泔计計炬染治注沼拜泥沮油況沿泳泑泱泉宪"));
            this.libs.add(new MetaLibItem(10, 0, "兼俱纭紜矩倚径徑屐桂格根栓娱娛娟粉家起记記肩芸衿珈括尅恭库庫豈哥拳躬笈氣缺虔贡貢鬼恢骨高耕衾皋奚芝桃桐株芷芯桑栗桌核校桓芬芙芽芳花笏倏样芦"));
            this.libs.add(new MetaLibItem(10, 1, "恬衲冻凍纳納伦倫倒倬值徒秩娣娜娘娌唐朔烈哲庭珍凌玲玳朕晁展晋晉恕料旃岛島特畜耄讨討留恥疾娲旅斗鬥耿晃烟恣秦祝芮夏烜烘虑敌达积烛玺党恋栾"));
            this.libs.add(new MetaLibItem(10, 2, "准容员員祐晏益肴恩殷宴案翁袁烟盎乌烏育個原峡峽峨砧轩軒城埋破砲"));
            this.libs.add(new MetaLibItem(10, 3, "纯純纸紙修倩借徐持娠时時宰孙孫差峻宸财財拾狩指珊师師仓倉钊釗弱素书書租乘射席殉祠座息殊栽神笑讪訕针針闪閃酌索烝隼眞真邛倪刚剛宫宮罡祖晁钉釘祚剖曹斋耸迁蚕"));
            this.libs.add(new MetaLibItem(10, 4, "娑纹紋纺紡纷紛倍倖候俵俸俯倣秘秤娥派洽肥肪恨珀恒圃训訓峰畝效埋畔旁冥併臭蚊豹配釜马馬勉峰航害眠病疲耘耗恤祜洸洨纽紐洲洞洛流洪洋活纱紗洗津洒酒洼洁"));
            this.libs.add(new MetaLibItem(11, 0, "卿救规規顷頃健偶偕御械梧悍悟娸康国國教基崑启啟乾区區坚堅苦珪寄崔晤近贯貫眼毬皎眷研竟翊袈寇圈苟邢梯苕笠笞笛救苡英苑圉彬梢梓桶若许許笙笥苫啟枭梟梗梅茂符苻茅盖"));
            this.libs.add(new MetaLibItem(11, 1, "胎振崙朗侦偵條從埜累将將章翎梨带帶那动動执執犁张張敕斛顶頂鹿梁悌略粒聊豚袋狷软軟聆羚帐帳聃娄婁鹵烷烽戚珣晟袜断离"));
            this.libs.add(new MetaLibItem(11, 2, "浴涎胃偃伟偉悠移婉英胡庸寅唯庵尉欲迎窕眺翌野异異敖域基崎堀堂崩鸟鳥峥培崩运"));
            this.libs.add(new MetaLibItem(11, 3, "袖绅紳组組绍紹细細终終侧側得匙处處焌参參紫专專晨祥船常崧崇趾彩钏唱勘阡商问問寂庶彫旌巢宿悉旋叙敘敍斜爽珠悦率产產祭窓粗羞设設船钗釵责責馗赦雀讼訟紮绝絕胙胥邢钓釣眾紬书書副珮钒剩"));
            this.libs.add(new MetaLibItem(11, 4, "袍胞浦浲海浮斌绊絆培偏徘货貨婚妇婦胖娬背麦麥习習鱼魚匾望望敏凰苗婆务務密閈闬彪败敗晦毫捕晚粕访訪曼邦贩販被麻票班讹訛悖邠毕畢扈浩涓匏浪涕涂浴涎浚消浸浙雪涉習习范还"));
            this.libs.add(new MetaLibItem(12, 0, "雁絖给給绞絞结結络絡草棋椅棍堦迭掘掛球荃皖捲琹稀期景开開皓尧堯蛟敢傑幾嵌贵貴凯凱欺雅割寓筐棨乔喬窘街强款硬邱栖统統栋棟植筌答茶筑筒棠椒绛絳筳庾茹栈棧森茜茸筍策荏茱最桌荀棚棒棉棼筏荒阮筑茧"));
            this.libs.add(new MetaLibItem(12, 1, "盗盜诊診场場琉捷探理琅凉涼程敦婷喨軼贴貼登智轴軸痛劳勞量能单單粧短巽凌淩衕闰轸軫循幅迢就寻尋媛邰屠娲硫炀煬晴晶焦焙惇焱欻证"));
            this.libs.add(new MetaLibItem(12, 2, "詠恶惡围圍为為翔翕蛙黑奠壹贻貽堰越惟勋黄黃砚硯堤堪岚嵐堡费費邮阴阳"));
            this.libs.add(new MetaLibItem(12, 3, "丝絲绒絨钞鈔絢绚註词詞诏詔诉訴授措推琇净淨税稍竦创創须須絮残殘替尊窗疎胜勝兹黍象裁斯视視超然曾殖掌甦贰貳舜甥善喻顺順舒剩盛竣脂情惜散奢枣棗粟述邵丧喪犀钧鈞钦欽割觇覘问問辜钮鈕钝鈍钠鈉接粟童剀剴甯朝堵鈄钭壶壺邹"));
            this.libs.add(new MetaLibItem(12, 4, "闷悶冯馮评評迫排虚防媚发發粥弼賁贲徨喜惠斐閒闵閔帽报報备備蛤买買雄寒云雲富復贺賀普贸貿扉悲唤喚傍脉脈博无無雰傅邯邳邴邶彭猛番淇涯淦混顸頇荆现現淋添淡淘幅淹液涴淑清深淞项項渊淵猎蛮"));
            this.libs.add(new MetaLibItem(13, 0, "琴绢絹经經倾傾楷裙揭暇睽誇勤祺诘詰莞嫁廉献羣舅跪义義感禁解业業鼓极極筠港减減琦琪琨郊窟颂頌愚干幹靴敬畸靳楠莉莨琳莒荻筱椰杨楊预預蛾媵莎莠椿楫榆苋莧莘枫楓楣莆茕煢莽"));
            this.libs.add(new MetaLibItem(13, 1, "粮传傳楠廊提稔稜暖睦煜炼煉脱煖当當鼎跡督塔农農雉殿追琢退电電虞驰馳煎裹顿頓路寗零詹媸禄祿艇照碖郅偻炀煬扬揚旸暘烟煙炜煒琰徭煊焕煥煤煇煌逄毓"));
            this.libs.add(new MetaLibItem(13, 2, "筳傭阿犹猶握稚暗话話衙矮意碗奥雍附琬爱愛裔圆圓爷爺饮飲园園嫈恽惲块塊圣聖碑"));
            this.libs.add(new MetaLibItem(13, 3, "辞送迺绣愉债債催羡捷暄诗詩询詢裕详詳试試荘驯馴伤傷新势勢岁歲歆蜀想斟资資琮琛楚轼軾肆蜃裟载載靖嗣暑装鼠愈剿凖愁酬勣郄禽睢钜钰鈺饬飭铃鈴钲鉦钿鈿邾铅鉛絺触"));
            this.libs.add(new MetaLibItem(13, 4, "补補雹绥綏粳鈵钵鉢琵换換挥揮晖暉湍琶聘颁頒号號瓶郁陂惶湣浑渾会會蜂微妈媽鸠鳩盟饭飯较較熙莫裘港媲贾賈涂塗雷汤湯渡浈湞渭游湖湛湶测測渝湘溆湫渠渻郇孵募"));
            this.libs.add(new MetaLibItem(14, 0, "綺绮纲綱魁紧緊降诰誥诫誡语語郡菊槐侨僑侥僥伪偽瑟斳赫旗箇轻輕嘉箕歌犒肇愿管疑郏郜兢菱构構戬戩榴榔莱菅榕莞荣榮算尝嘗箒粽翠笺箋菜菁菑萌幕梦夢榜裴枪槍"));
            this.libs.add(new MetaLibItem(14, 1, "尽盡寧宁绿綠纶綸绰綽绫綾通连連逐透誌种種郎菱溜嫩嫡对對团團裳奖獎态態端恺愷彰尔爾尘塵畅暢辣獃叹嘆歎领領廖臺台赵趙嫘滕僚摇枪槍榭制製绫綾蜡"));
            this.libs.add(new MetaLibItem(14, 2, "维維诞誕温溫斲瑛玮瑋瑕顼頊與与嫣境翟硕碩墀"));
            this.libs.add(new MetaLibItem(14, 3, "绶綬综綜慈绸綢造速认認诵誦说說诚誠称稱僧僖像衔銜阀閥精聚甄饰飾寿壽誓酸赈賑粹实實瑜瑄瑞署察齐齊狮獅綮慎银銀韶铨銓铜銅瑒玚划劃臧铭銘郝郤"));
            this.libs.add(new MetaLibItem(14, 4, "網网绵綿逢溥诲誨铭銘福僕嫚貌萍窪洼闻聞饲飼飒颯辅輔碧华華饱飽蜜魂凤鳳熊鸣鳴鼻陌宾賓豪阁閣髦熏闽閩舞滑寡源溪灭滅阁閣嘏溶瑚溢沧滄滋滏溲滇郗涤滌"));
            this.libs.add(new MetaLibItem(15, 0, "葵慷慨廣枢樞萼稼俭儉價仪儀鞏课課驾駕毅靠穀郭箴庆慶宽寬娇嬌谊誼颉頡麫麪驹駒概稽葛樟楼樓稻樑箭竖豎蒂稷樣莹瑩樊耦萱槽箱葫葱葆标標模篇筅筅樗贤賢築药"));
            this.libs.add(new MetaLibItem(15, 1, "缎緞缇緹练練董缔締缓緩腰徵彻徹德阵陣瑭刘劉谅諒乐樂调調慮弹彈谈談层層轮輪暟敵论論进進頫蝶瑯除萳摘暂暫驻駐践踐质質寮鲁魯鼐儋厉厲黎褚逯郯歎糊热熱僻"));
            this.libs.add(new MetaLibItem(15, 2, "嫺亿億院阅閱养養逸慰欧歐鞍影頞豌蝴憂蝯葉郵卫衛嶔娴嫻确確逵增墩磋磁磐"));
            this.libs.add(new MetaLibItem(15, 3, "节節绪緒线線锄鋤锈衝陞升婵嬋赏賞审審帜幟锐銳熟瑲玱趣赐数數蚀蝕媭谆諄请請靓靚敷辤驷駟剧劇剑劍肠腸摯挚闾閭缄緘锋鋒铺鋪劈"));
            this.libs.add(new MetaLibItem(15, 4, "编編翩暴範廟魄嬉霈蝦蝠饼餅辉輝慧暮漫摸兴興部滹漠漂满滿墨瞑卖賣辈輩虢醇摩履盘盤赔賠箲蝙赋賦萬汉漢缗緡幣漪浒滸滚涨漲霆滺渔漁演霄渍漬漩震漕褒慕"));
            this.libs.add(new MetaLibItem(16, 0, "遇过過裤褲机機桥橋橘谐諧谚諺颊頰黔圜县縣笃篤器龟龜哙噲蓋蒯蓄蓁麇萤螢蓉颖穎鄂阎閻树樹苍蒼冀亲親整横桦樺义義褰蒲"));
            this.libs.add(new MetaLibItem(16, 1, "道谘諮遂達錄录燐積灯燈燑瑾燉燄璋陵陈陳陶螣谛諦臻琏璉赖賴历曆靛蹄头頭导導歴龙龍卢盧俦儔璃糖鸯鴦都颓頹骆駱陆陸晓曉璇燃炽熾烧燒熹"));
            this.libs.add(new MetaLibItem(16, 2, "遐遊運陰谓謂燕衡鸭鴨餘鸳鴛豫融歙嬴瓯甌郓鄆坛壇壁磨勋勳"));
            this.libs.add(new MetaLibItem(16, 3, "锤錘锥錐锡錫钱錢错錯谕諭縢诸諸辑輯静嫱醒儒蒨侪儕战戰叡雕锦錦钢鋼錡锜锯鋸谒謁谖諼铮錚锭錠撮赪赬穆"));
            this.libs.add(new MetaLibItem(16, 4, "遍熺烨燁潢谋謀陪学學霏奮颔頷缚縛默憲潘蒙鲍鮑潔浇澆溃潰靦腼霍潭潮润潤澄澂霖寰澍霑霓愤憤"));
            this.libs.add(new MetaLibItem(17, 0, "颗谦謙玑璣检檢嶽恳懇擎击擊举舉糠艰艱讲講懋罄鞠觊覬赚賺黚矫矯莲蓮联聯檀蒋蔚营營蔡蔓篷豁蓬"));
            this.libs.add(new MetaLibItem(17, 1, "队隊绩績麋隆赯儡励勵瞳嬭奶瞭辗輾纵縱螳临臨螺擂择擇燧炼煉黛隸襄蒋謄誊灿燦燭燥黏燮繆缪"));
            this.libs.add(new MetaLibItem(17, 2, "優应應远遠壑陽擁拥醖酝婴嬰邬鄔嶺矶磯壕"));
            this.libs.add(new MetaLibItem(17, 3, "操赛賽钟鐘齋聲骏駿聳偿償縻禅禪糟徽瞬缩縮聪聰总總逊遜锹鍬谢謝饯餞鲜鮮蹇鄒隋键鍵锅鍋谿锻鍛镀鍍氈舆輿赜"));
            this.libs.add(new MetaLibItem(17, 4, "鄉鸿鴻繁霞璠璜璟禧賸嫔嬪镁鎂韩韓浓濃潞亵泽澤彌澹霜"));
            this.libs.add(new MetaLibItem(18, 0, "翘翹谨謹绕繞骐騏槛檻搁擱擬璩归歸睑瞼简簡颜顏骑騎鹃鵑黠觐覲魏瞽蕊簪瞿隗鬆获獲鹄鵠萧蕭旧舊"));
            this.libs.add(new MetaLibItem(18, 1, "烬燼禮斷戴適爵焘燾糧瞻转轉职職蟲鲤鯉题題釐曜豐燻"));
            this.libs.add(new MetaLibItem(18, 2, "陨隕醫讴謳鄢壘礎璧"));
            this.libs.add(new MetaLibItem(18, 3, "翼翱雙织織颛顓璨缮繕蝉蟬觞觴锁鎖秽穢鎗謦聂聶环環阙闕镇鎮鎚鎚储儲铠鎧镒鎰镕鎔迟遲"));
            this.libs.add(new MetaLibItem(18, 4, "繐馥谟謨滨濱濮闖闯覆蹒蹣鞭涛濤济濟濯濙湿濕杂雜"));
            this.libs.add(new MetaLibItem(19, 0, "关關麒攀曠鲸鯨遗遺撷願愿蚁蟻蟹繫薊蓟难難签簽繭薛麴薇麓竞競萨薩"));
            this.libs.add(new MetaLibItem(19, 1, "谭譚韬韜離璽辙轍赠贈證际際麗類绎繹譔韲郑鄭鄧蠊庞龐"));
            this.libs.add(new MetaLibItem(19, 2, "嬿稳穩"));
            this.libs.add(new MetaLibItem(19, 3, "选選绣繡遷颠顛赞贊兽獸祷禱锵鏘遵畴疇鹊鵲识識辭绳繩鲭鲰鯫谯譙镜鏡繫链鏈镠鏐鏖镖鏢"));
            this.libs.add(new MetaLibItem(19, 4, "鵰谱譜鹏鵬簿绘繪穫羹霪薄獵靡"));
            this.libs.add(new MetaLibItem(20, 0, "琼瓊议議劝勸继繼觉覺警悬懸舰艦严嚴邀牺犧阚闞郐鄶藏纂篮籃籍筹籌骞騫獻薰麵"));
            this.libs.add(new MetaLibItem(20, 1, "龄齡罗羅腾騰赡贍獭獺阐闡胧朧黨窦竇爐耀宝寶飘飄"));
            this.libs.add(new MetaLibItem(20, 2, "孆耀矿礦砾礫壤"));
            this.libs.add(new MetaLibItem(20, 3, "释釋钟鐘馨繻译譯触觸黥齣锏鐧镪鏹鐔镡镫鐙"));
            this.libs.add(new MetaLibItem(20, 4, "還懷颟顢露"));
            this.libs.add(new MetaLibItem(21, 0, "艺藝顾顧龈齦驱驅饒鷄嚣囂颢顥藤藥莺鶯樱櫻饶饒"));
            this.libs.add(new MetaLibItem(21, 1, "跻躋蠟鳎鰨馔饌缠纏"));
            this.libs.add(new MetaLibItem(21, 2, "趯蠡誉譽跃躍巍"));
            this.libs.add(new MetaLibItem(21, 3, "随隨镌鐫续續铎鐸属屬镰鐮铁鐵鉴鑒"));
            this.libs.add(new MetaLibItem(21, 4, "护護鹤鶴轟轰霹辩辯霸黯飜藩瀾澜灌"));
            this.libs.add(new MetaLibItem(22, 0, "权權龢俨儼笼籠蘆鬻藷蘇苏龚龔"));
            this.libs.add(new MetaLibItem(22, 1, "叠疊读讀摄攝聽躒跞龛龕颤顫赎贖囊览覽"));
            this.libs.add(new MetaLibItem(22, 2, "璎瓔隐隱懿鬻窃巅巔"));
            this.libs.add(new MetaLibItem(22, 3, "衬襯铸鑄鬚癣癬袭襲鑑"));
            this.libs.add(new MetaLibItem(22, 4, "骅驊穰響响鳗鰻欢歡边邊沣灃霽霁灑"));
            this.libs.add(new MetaLibItem(23, 0, "驿驛验驗兰蘭籖鱖鳜鹰鷹"));
            this.libs.add(new MetaLibItem(23, 1, "兰蘭戀麟鳞鱗欒显顯"));
            this.libs.add(new MetaLibItem(23, 2, "缨纓巖鑛矿鑢"));
            this.libs.add(new MetaLibItem(23, 3, "攒攢霉铄鑠"));
            this.libs.add(new MetaLibItem(23, 4, "囏变變黴霉"));
            this.libs.add(new MetaLibItem(24, 0, "赣搅攪醸霭靄"));
            this.libs.add(new MetaLibItem(24, 1, "灵靈雳靂鹭鷺篱籬鱣鳣"));
            this.libs.add(new MetaLibItem(24, 2, "艳艷盐鹽罐"));
            this.libs.add(new MetaLibItem(24, 3, "鑫蠶"));
            this.libs.add(new MetaLibItem(24, 4, "鸂"));
            this.libs.add(new MetaLibItem(25, 0, "观觀缵纘羁羈"));
    
            this.libs.add(new MetaLibItem(25, 2, "叆靉"));
    
            this.libs.add(new MetaLibItem(25, 4, "蠻灏灝酆"));
            this.libs.add(new MetaLibItem(26, 0, ""));
            this.libs.add(new MetaLibItem(26, 1, "逻邏郦酈"));
    
            this.libs.add(new MetaLibItem(26, 3, "骥驥讚赞"));
            this.libs.add(new MetaLibItem(26, 4, "湾灣"));
    
            this.libs.add(new MetaLibItem(27, 1, "骧驤缆纜銮鑾"));
    
            this.libs.add(new MetaLibItem(27, 3, "钻鑽锣鑼"));
            this.libs.add(new MetaLibItem(27, 4, "滦灤"));
            this.libs.add(new MetaLibItem(28, 0, "戆"));
    
        }
    
        public int getStringLibs(char item) {
            for (int i = 0; i < libs.size(); i++) {
                if (libs.get(i).IfStringexist(item)) {
                    return i;
                }
            }
            return -1;
        }
    
        public ArrayList<MetaLibItem> getLibs() {
            return this.libs;
        }
    }

     

    package javaluozhuangtestname;
    
    
    /**汉字五行笔画类
     *
     * @author luozhuang 大师♂罗莊
     */
    public class MetaLibItem {
    
        private int bh;//笔画
        private String findStr;
        private int wx_indx;//五行
    
        /**
         *
         * @param bh 笔画
         * @param wx_indx 五行顺序
         * @param findStr //汉字列
         */
        public MetaLibItem(int bh, int wx_indx, String findStr) {
            this.bh = bh;
            this.wx_indx = wx_indx;
            this.findStr = findStr;
        }
    
        /**
         *
         * @return 获得笔画
         */
        public int getBh() {
            return this.bh;
        }
    
        /**
         * 获得汉字列
         *
         * @return
         */
        public String getFindStr() {
            return this.findStr;
        }
    
        /**
         * 获得汉字是否存在列表中
         *
         * @return
         */
        public Boolean IfStringexist(String findStr) {
            if (this.findStr.indexOf(findStr) == -1) {
                return false;
            }
            return true;
        }
        
          /**
         * 获得汉字是否存在列表中
         *
         * @return
         */
        public Boolean IfStringexist(char findStr) {
            if (this.findStr.indexOf(findStr) == -1) {
                return false;
            }
            return true;
        }
    
        /**
         * 获得五行顺序
         *
         * @return
         */
        public int getWx_indx() {
            return this.wx_indx;
        }
    }


     

    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package javaluozhuangtestname;
    
    import java.util.ArrayList;
    
    /**取汉字五行笔画演示
     *
     * @author luozhuang 大师♂罗莊
     */
    public class Luozhuangnamewuxing {
    
       public BhWxLib myBhWxLib = new BhWxLib();
    
        /**
         * 取出名字每个字在库中位置
         *
         * @param name
         * @return
         */
        public int[] getnameliborder(String name) {
            char[] namechararray = name.toCharArray();
            int[] returnarray = new int[namechararray.length];
            for (int i = 0; i < namechararray.length; i++) {
                int order = getnameliborder(namechararray[i]);
                returnarray[i] = order;
            }
            return returnarray;
    
        }
    
        /**
         * 取出字在库中位置
         *
         * @param name
         * @return
         */
        public int getnameliborder(char name) {
            ArrayList<MetaLibItem> libs = myBhWxLib.getLibs();
    
            int returnorder = -1;
    
            returnorder = myBhWxLib.getStringLibs(name);
    
            return returnorder;
    
        }
    
        /**
         * 取出名字笔画
         *
         * @param name
         * @return
         */
        public int getnameBH(int name) {
            ArrayList<MetaLibItem> libs = myBhWxLib.getLibs();
    
            int returnorder = -1;
    
            returnorder = libs.get(name).getBh();
    
            return returnorder;
    
        }
    
        /**
         * 取出名字五行
         *
         * @param name
         * @return
         */
        public int getnameWX(int name) {
            ArrayList<MetaLibItem> libs = myBhWxLib.getLibs();
    
            int returnorder = -1;
    
            returnorder = libs.get(name).getWx_indx();
    
            return returnorder;
    
        }
    
        /**
         * 取出名字笔画
         *
         * @param name
         * @return
         */
        public int[] getnameBH(int name[]) {
            int[] returnarray = new int[name.length];
            for (int i = 0; i < name.length; i++) {
                returnarray[i] = getnameBH(name[i]);
    
            }
            return returnarray;
        }
    
        /**
         * 取出名字五行
         *
         * @param name
         * @return
         */
        public int[] getnameWX(int name[]) {
            int[] returnarray = new int[name.length];
            for (int i = 0; i < name.length; i++) {
                returnarray[i] = getnameWX(name[i]);
    
            }
            return returnarray;
    
        }
    
        /**
         * 取出名字五行汉字
         *
         * @param name
         * @return
         */
        public String[] getnameWXarray(int name[]) {
            String[] returnarray = new String[name.length];
            for (int i = 0; i < name.length; i++) {
                returnarray[i] = getnameWXnaying(name[i]);
    
            }
            return returnarray;
    
        }
    
        /**
         * 取出名字五行汉字
         *
         * @param name
         * @return
         */
        public String getnameWXnaying(int name) {
            switch (name) {
                default:
                    return "无";
                case 0:
    
                    return "木";
    
                case 1:
                    return "火";
    
                case 2:
                    return "土";
    
                case 3:
                    return "金";
    
                case 4:
                    return "水";
            }
    
        }
    
        public String pringst(int[] res) {
            StringBuffer result = new StringBuffer();
            for (int i = 0; i < res.length; i++) {
    
    
                result.append(res[i]);
                result.append("   ");
            }
    
            result.append("\n");
            System.out.println(result);
            return result.toString();
        }
    
        public String pringst(String[] res) {
            StringBuffer result = new StringBuffer();
            for (int i = 0; i < res.length; i++) {
    
    
                result.append(res[i]);
                result.append("   ");
            }
    
            result.append("\n");
            System.out.println(result);
            return result.toString();
        }
    
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            System.out.println("五行简介:\n"
                    + "\n"
                    + "中国五行学说认为宇宙万物,都由金木水火土五种基本物质的运行和变化所构成,所有事物都是随着这五个要素的盛衰,而使得大自然产生变化,不但影响到人的命运,同时也使宇宙万物循环不已。\n"
                    + "\n"
                    + "其中:\n"
                    + "“木曰曲直”,意思是木具有生长、升发的特性;\n"
                    + "“火曰炎上”,是火具有发热、向上的特性;\n"
                    + "“土爰稼墙”,是指土具有种植庄稼,生化万物的特性;\n"
                    + "“金曰从革”,是金具有肃杀、变革的特性;\n"
                    + "“水曰润下”,是水具有滋润、向下的特性\n"
                    + "五行相生相克\n"
                    + "\n"
                    + "五行相生:金生水,水生木,木生火,火生土,土生金。\n"
                    + "\n"
                    + "五行相克:金克木,木克土,土克水,水克火,火克金。 ");
            System.out.println("中国汉字有那五行?\n"
                    + "根据中国五行理论,汉字分为金、木、水、火、土共五种五行属性,每个汉字对应一种五行属性。");
            Luozhuangnamewuxing my = new Luozhuangnamewuxing();
            int[] temp = my.getnameliborder("大师罗庄");
            int[] wuxing = my.getnameWX(temp);
            int[] BH = my.getnameBH(temp);
            System.out.println("大师罗庄的五行");
            my.pringst(my.getnameWXarray(wuxing));
            System.out.println("大师罗庄的笔画");
            my.pringst(BH);
    
    
        }
    }



     

    更多相关内容
  • 起名常用字五行字库

    2020-12-17 04:14:01
    起名常用字五行字库能让你重新焕发起创造热情、焕发起新生命力,赶快来下载起名常用字五行字库学习和领悟...该文档为起名常用字五行字库,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看
  • 提起用sql语句查询表格的前五行,想必大家都有一定了解,有人问怎样查五行缺什么,另外,还有人想问五行缺什么查询表,这到底是咋回事?其实五行缺什么查询表,下面就一起来了解下五行缺失查询表,希望能够帮助到...

    提起用sql语句查询表格的前五行,想必大家都有一定了解,有人问怎样查五行缺什么,另外,还有人想问五行缺什么查询表,这到底是咋回事?其实五行缺什么查询表,下面就一起来了解下五行缺失查询表,希望能够帮助到各位朋友们。

    看楼主的写法应该 是在SQL Server数据库中吧?

    如果是楼主试 知一试 SELECT TOP 5 * FROM STUDENT;生辰八字五行查询。

    如果是在Oracle中楼 道主试一试 SELECT * FROM STUDENT WHERE ROWNUM <= 5;

    如果是在MySQL中楼主试一试 SELECT * FROM STUDENT LIMIT 5;

    生辰八字五行查询表

    肖煜瀚 总分:100免费五行缺失查询。

    肖(xiao) 煜(yu) 瀚(han)

    五行缺失查询表

    农历:2011年2月11日 时辰:辰(chen)时

    属相:兔

    星座:双鱼座出生日期八字查询表。

    四柱:辛卯年, 辛卯月, 己巳日, 戊辰时

    八字:辛卯 辛卯 己巳 戊辰

    五行:金木,金木,土火,土土

    纳音:松柏木 松柏木 大林木 大林木

    喜用神:水,

    五格:天格20(水) 人格32(木) 地格33(火) 总格52(木) 外格21(木)

    三才:天才0(水)→人才2(木)→地才3(火)

    名字五行属性:肖(木) 煜(火) 瀚(水)

    五格释义男孩名字大全2018属狗。

    天格:乃祖先留下来的,其数理对人影响不大。五行属水的字。

    第20数理:(屋下藏金):非业破运的空虚数。(凶)

    基业:官星、部将、美术、智能、红艳、凶危。金木水火土五行查询表。

    家庭:亲情不立,兄弟相隐,离祖败家,凡事善忍则家中和平

    健康:泥身进海,难以为继。三才配置不善者命运多难、病弱。金木者安全。

    含义:物将坏之象。破败衰亡之数,具有短命非业的诱导。危机四伏,灾难迭至,凶祸频临,一生不得安宁,不如意,万事难成,陷于逆境。或导致病弱、短命、非业、破灭,或幼时别亲,而陷困苦,或叹子女不幸,或男女失偶。

    人格:又称主运,是整个姓名的中心点,人一生的命运,均由此人格推断。

    第32数理:(宝马金鞍):权贵显达的意外惠泽数。(吉)

    e7f1a6dba9b57922fe0980f9a14768fc.png

    五行缺失查询表:怎样查五行缺什么?

    基业:天德、月德、君臣、将星、文官、学士、文昌、进宅、祖业。万年历查询表。

    家庭:家门隆昌,可望圆满,子孙旺盛,男有双妻之格。免费查询五行缺什么。

    健康:可望安康,“三才”不善者有病患。生辰八字五行查询系统。

    含义:侥幸多望之格,常得长上之庇护。若能得长辈提掖,其成功将势如破竹。且此数理者品性温良,大有爱护他人之德。家门隆昌繁荣,为至上的吉数,最适合女性用。

    地格:由名字全部笔画数构成,称为前运,主管人中年以前的活动力。

    第33数理:(升天):家门隆昌的才德开展数。(吉)

    基业:天官、臣将、部长、文昌、学士、田宅、富翁。

    家庭:可望圆满,幸福。女性用则孤寡。

    健康:望健康,“三才”不善者有略患。

    含义:鸾凤相会,昭日升天之象,形成确定之意。多功威智谋,刚毅果断有如旭日东升,旺盛隆昌至极,属名闻天下的吉祥运。若过刚恐招事非而误事。因其过于贵重,常人恐不堪受。但又是物极必反,尊荣的反面为黑暗,故勿轻用之。女性断不可用,用则孤寡。

    总格:主中年至晚年的命运,又称后运。

    第52数理:(达眼):先见之明,理想实现数。(吉)五行缺什么怎么查询。

    基业:元帅、医师、文昌、技艺、财库、官禄、财星。

    家庭:幸福,顺从行孝,子女和睦。“三才”不善良者则不遇。

    健康:可望安康长寿,人格被克者不遇。五行查询缺什么。

    含义:哲人知机,有先见之明,一跃成功之象。势力强大,有谋略,富投机心,有回天之手段,能实现大志大业而名利双收。

    外格:主管命运之灵力。

    第21数理:(明月中天):明月光照,体质刚健的独立权威数(吉)五行八字缺什么查询表。

    基业:天官、太极、文昌、哲学、艺术、财库、福禄、首领、君臣、富翁

    家庭:六亲和睦,有子嗣之惠,女性反为不吉,用则破 夫运。

    健康:秋月芙蓉,壮年健壮,长寿。

    含义:含义:光风霁月之象,万物形成自立之势。独立权威,能为首领之运。为人尊仰,享受富贵荣华。路径属迈进发展,中途难免相当苦心步步而进,宛如登梯。立业兴家,大博名利,寿禄丰厚,乃贵重的吉数。女性得此数者,易招灾害,故不宜之。按《易经》观点女性属阴应助男性,是为先天的补数,如具备首领之运,即妻凌夫之格。阴阳生出暗斗,自然不得安宁,故夫妻难免时常反目,或喜极生悲,且妇德不备,家庭不圆满,妻便克夫,所谓两虎相斗,必无双全者慎之戒之。五行命理查询表。

    天地人三才释义

    有成功运和发达运。(吉)

    金木水火土五行命局

    此八字喜用神为:水, 名字属性为:肖(木) 煜(火) 瀚(水)

    这名字取得极好,千万不要改了。生辰八字查五行缺失。

    以上与怎样查五行缺什么相关的内容,是为大家精心整理的关于五行缺什么查询表的分享。看完用sql语句查询表格的前五行后,希望这对大家都有帮助!

    发布者:幸福配对,原创文章禁止转载 出处:http://www.ypiq.cn/sxhh/86943.html

    展开全文
  • C#: 生辰八字五行计算算法

    千次阅读 2016-12-30 10:15:59
    最近偶有机缘接触到八卦五行,有个校友在做紫微斗数,于是乎就想做个计算生辰八字五行算法的C#代码,说到底占卜命理这种理论笔者觉得最终还是基于统计学的,这个可能有很多学派很多师傅有不同的理论,不过算生辰八字...

    最近偶有机缘接触到八卦五行,有个校友在做紫微斗数,于是乎就想做个计算生辰八字五行算法的C#代码,说到底占卜命理这种理论笔者觉得最终还是基于统计学的,这个可能有很多学派很多师傅有不同的理论,不过算生辰八字还算是通用的,不过不能乱算,笔者最不喜欢的就是搞个不靠谱的误人子弟,于是乎研究了一圈,发现有篇潘爱民写的还算比较可靠,但是是基于c语言的,于是笔者在这基础上写了个C#版的,本着源于网络回馈网络的精神下面是C#改写的代码,望大家交流,有其他占卜相关的算法也可以一起研究,其实这和大数据还真的能结合一起。

        public class BaziAlgorithm
        {
            //==================================
            //以下为http://blog.csdn.net/panaimin/article/details/8544489
            //计算五行


            const string TianGan = "甲乙丙丁戊己庚辛壬癸";
            const string DiZhi = "子丑寅卯辰巳午未申酉戌亥";


            public bool CheckBazi(string bazi)
            {


                int baziLen;


                int i, j;






                baziLen = bazi.Length;


                if (baziLen != 6 && baziLen != 8) return false;






                for (i = 0; i < baziLen;)
                {


                    char ch = bazi[i];


                    for (j = 0; j < 10; j++)


                        if (ch == TianGan[j]) break;


                    if (j >= 10) return false;


                    i++;






                    ch = bazi[i];


                    for (j = 0; j < 12; j++)


                        if (ch == DiZhi[j]) break;


                    if (j >= 12) return false;


                    i++;


                }






                return true;


            }






            /*


            根据出生日子的天干,通过下表来查算时辰干支:


            时辰干支查算表


            时间时辰                             五行纪日干支


                                   甲己     乙庚     丙辛     丁壬     戊癸






            23-01 子/水           甲子     丙子     戊子     庚子     壬子


            01-03 丑/土           乙丑     丁丑     己丑     辛丑     癸丑


            03-05 寅/木           丙寅     戊寅     庚寅     壬寅     甲寅


            05-07 卯/木           丁卯     己卯     辛卯     癸卯     乙卯


            07-09 辰/土           戊辰     庚辰     壬辰     甲辰     丙辰


            09-11 巳/火           己巳     辛巳     癸巳     己巳     丁巳


            11-13 午/火           庚午     壬午     甲午     丙午     戊午


            13-15 未/土           辛未     癸未     乙未     丁未     己未


            15-17 申/金           壬申     甲申     丙申     戊申     庚申


            17-19 酉/金           癸酉     乙酉     丁酉     己酉     辛酉


            19-21 戊/土           甲戌     丙戌     戊戌     庚戌     壬戌


            21-23 亥/水           乙亥     丁亥     己亥     辛亥     癸亥






            */


            string[][] cTimeGanZhi_Table = new string[12][]


    {


            new string[] {"甲子","丙子","戊子","庚子","壬子"},


            new string[] {"乙丑","丁丑","己丑","辛丑","癸丑"},


            new string[] {"丙寅","戊寅","庚寅","壬寅","甲寅"},


            new string[] {"丁卯","己卯","辛卯","癸卯","乙卯"},


            new string[] {"戊辰","庚辰","壬辰","甲辰","丙辰"},


            new string[] {"己巳","辛巳","癸巳","己巳","丁巳"},


            new string[] {"庚午","壬午","甲午","丙午","戊午"},


            new string[] {"辛未","癸未","乙未","丁未","己未"},


            new string[] {"壬申","甲申","丙申","戊申","庚申"},


            new string[] {"癸酉","乙酉","丁酉","己酉","辛酉"},


            new string[] {"甲戌","丙戌","戊戌","庚戌","壬戌"},


            new string[] {"乙亥","丁亥","己亥","辛亥","癸亥"}


    };






            static string sBuf;        // 用作八字结果缓冲区






            // 根据出生年月日的干支计算时辰干支


            // 输入参数:bazi,年月日的干支,即八字中的前六个字


            // 输入参数:hour,出生时间的小时数,-1~22


            // 输出结果:八字字符串,Unicode编码


            public string ComputeTimeGan(string bazi, int hour)


            {
                if (hour > 22) hour -= 24;
                char dayGan = bazi[4];






                int indexX, indexY;






                int i;


                for (i = 0; i < 10; i++)


                    if (dayGan == TianGan[i]) break;


                if (i >= 10) return "";


                indexX = i;


                if (indexX >= 5) indexX -= 5;


                indexY = (hour + 1) / 2;






                sBuf = bazi;


                sBuf += cTimeGanZhi_Table[indexY][indexX];






                return sBuf;


            }






            /*


            十二月份天干强度表


            生月\四柱天干        甲              乙              丙              丁              戊              己              庚              辛              壬              癸


            子月                            1.2             1.2             1.0             1.0             1.0             1.0             1.0             1.0             1.2             1.2


            丑月                            1.06 1.06 1.0             1.0             1.1             1.1             1.14 1.14 1.1             1.1


            寅月                            1.14 1.14 1.2             1.2             1.06 1.06 1.0             1.0             1.0             1.0


            卯月                            1.2             1.2             1.2             1.2             1.0             1.0             1.0             1.0             1.0             1.0


            辰月                            1.1             1.1             1.06 1.06 1.1             1.1             1.1             1.1             1.04 1.04


            巳月                            1.0             1.0             1.14 1.14 1.14 1.14 1.06 1.06 1.06 1.06


            午月                            1.0             1.0             1.2             1.2             1.2             1.2             1.0             1.0             1.0             1.0


            未月                            1.04 1.04 1.1             1.1             1.16 1.16 1.1             1.1             1.0             1.0


            申月                            1.06 1.06 1.0             1.0             1.0             1.0             1.14 1.14 1.2             1.2


            酉月                            1.0             1.0             1.0             1.0             1.0             1.0             1.2             1.2             1.2             1.2


            戌月                            1.0             1.0             1.04 1.04 1.14 1.14 1.16 1.16 1.06 1.06


            亥月                            1.2             1.2             1.0             1.0             1.0             1.0             1.0             1.0             1.14 1.14


            */






            double[][] TianGan_Strength = new double[12][]


            {


            new double[] {1.2, 1.2,  1.0,  1.0,  1.0,  1.0,  1.0,  1.0,  1.2,  1.2},


             new double[]{1.06,        1.06,         1.0,  1.0,  1.1,  1.1,  1.14,         1.14,         1.1,  1.1},


            new double[] {1.14,        1.14,         1.2,  1.2,  1.06,         1.06,         1.0,  1.0,  1.0,  1.0},


            new double[] {1.2, 1.2,  1.2,  1.2,  1.0,  1.0,  1.0,  1.0,  1.0,  1.0},


            new double[] {1.1, 1.1,  1.06,         1.06,         1.1,  1.1,  1.1,  1.1,  1.04,         1.04},


            new double[] {1.0, 1.0,  1.14,         1.14,         1.14,         1.14,         1.06,         1.06,         1.06,         1.06},


            new double[] {1.0, 1.0,  1.2,  1.2,  1.2,  1.2,  1.0,  1.0,  1.0,  1.0},


            new double[] {1.04,        1.04,         1.1,  1.1,  1.16,         1.16,         1.1,  1.1,  1.0,  1.0},


            new double[] {1.06,        1.06,         1.0,  1.0,  1.0,  1.0,  1.14,         1.14,         1.2,  1.2},


            new double[] {1.0, 1.0,  1.0,  1.0,  1.0,  1.0,  1.2,  1.2,  1.2,  1.2},


            new double[] {1.0, 1.0,  1.04,         1.04,         1.14,         1.14,         1.16,         1.16,         1.06,         1.06},


            new double[] {1.2, 1.2,  1.0,  1.0,  1.0,  1.0,  1.0,  1.0,  1.14,         1.14}


            };






            /*


            十二月份地支强度表






                                    生月       子月         丑月         寅月         卯月         辰月         巳月         午月         未月         申月         酉月         戌月         亥月        


            地支         支藏


            子              癸                       1.2             1.1             1.0             1.0             1.04 1.06 1.0             1.0             1.2             1.2             1.06 1.14


            丑              癸                       0.36 0.33 0.3             0.3             0.312        0.318        0.3             0.3             0.36 0.36 0.318        0.342


            丑              辛                       0.2             0.228        0.2             0.2             0.23 0.212        0.2             0.22 0.228        0.248        0.232        0.2           


            丑              己                       0.5             0.55 0.53 0.5             0.55 0.57 0.6             0.58 0.5             0.5             0.57 0.5            


            寅              丙                       0.3             0.3             0.36 0.36 0.318        0.342        0.36 0.33 0.3             0.3             0.342        0.318       


            寅              甲                       0.84 0.742        0.798        0.84 0.77 0.7             0.7             0.728        0.742        0.7             0.7             0.84


            卯              乙                       1.2             1.06 1.14 1.2             1.1             1.0             1.0             1.04 1.06 1.0             1.0             1.2            


            辰              乙                       0.36 0.318        0.342        0.36 0.33 0.3             0.3             0.312        0.318        0.3             0.3             0.36


            辰              癸                       0.24 0.22 0.2             0.2             0.208        0.2             0.2             0.2             0.24 0.24 0.212        0.228       


            辰              戊                       0.5             0.55 0.53 0.5             0.55 0.6             0.6             0.58 0.5             0.5             0.57 0.5            


            巳              庚                       0.3             0.342        0.3             0.3             0.33 0.3             0.3             0.33 0.342        0.36 0.348        0.3            


            巳              丙                       0.7             0.7             0.84 0.84 0.742        0.84 0.84 0.798        0.7             0.7             0.728        0.742       


            午              丁                       1.0             1.0             1.2             1.2             1.06 1.14 1.2             1.1             1.0             1.0             1.04 1.06


            未              丁                       0.3             0.3             0.36 0.36 0.318        0.342        0.36 0.33 0.3             0.3             0.312        0.318       


            未              乙                       0.24 0.212        0.228        0.24 0.22 0.2             0.2             0.208        0.212        0.2             0.2             0.24


            未              己                       0.5             0.55 0.53 0.5             0.55 0.57 0.6             0.58 0.5             0.5             0.57 0.5            


            申              壬                       0.36 0.33 0.3             0.3             0.312        0.318        0.3             0.3             0.36 0.36 0.318        0.342       


            申              庚                       0.7             0.798        0.7             0.7             0.77 0.742        0.7             0.77 0.798        0.84 0.812        0.7            


            酉              辛                       1.0             1.14 1.0             1.0             1.1             1.06 1.0             1.1             1.14 1.2             1.16 1.0            


            戌              辛                       0.3             0.342        0.3             0.3             0.33 0.318        0.3             0.33 0.342        0.36 0.348        0.3            


            戌              丁                       0.2             0.2             0.24 0.24 0.212        0.228        0.24 0.22 0.2             0.2             0.208        0.212       


            戌              戊                       0.5             0.55 0.53 0.5             0.55 0.57 0.6             0.58 0.5             0.5             0.57 0.5            


            亥              甲                       0.36 0.318        0.342        0.36 0.33 0.3             0.3             0.312        0.318        0.3             0.3             0.36


            亥              壬                        0.84 0.77 0.7             0.7             0.728        0.742        0.7             0.7             0.84 0.84 0.724        0.798       


            */


            struct ZISTRENGTH
            {


                public char diZhi;


                public char zhiCang;


                public double[] strength;


                public ZISTRENGTH(char a, char b, double[] c)
                {
                    diZhi = a; zhiCang = b; strength = c;
                }


            };




            ZISTRENGTH[] DiZhi_Strength = new ZISTRENGTH[]


            {


            new ZISTRENGTH ('子', '癸', new double[] {1.2,1.1, 1.0, 1.0,        1.04, 1.06, 1.0,1.0, 1.2, 1.2, 1.06, 1.14}),


             new ZISTRENGTH('丑', '癸', new double[] {0.36,0.33, 0.3, 0.3, 0.312, 0.318, 0.3, 0.3, 0.36, 0.36, 0.318, 0.342}),


             new ZISTRENGTH('丑', '辛', new double[] {0.2,0.228, 0.2, 0.2, 0.23, 0.212, 0.2,         0.22,0.228, 0.248, 0.232, 0.2}),


             new ZISTRENGTH('丑', '己',new double[]  {0.5,0.55, 0.53, 0.5, 0.55, 0.57, 0.6, 0.58, 0.5, 0.5, 0.57, 0.5}),


             new ZISTRENGTH('寅', '丙', new double[] {0.3,0.3, 0.36, 0.36, 0.318, 0.342, 0.36, 0.33, 0.3, 0.3, 0.342, 0.318}),


             new ZISTRENGTH('寅', '甲',new double[]  {0.84,0.742, 0.798, 0.84, 0.77, 0.7, 0.7, 0.728, 0.742, 0.7, 0.7, 0.84}),


             new ZISTRENGTH('卯', '乙', new double[] {1.2,1.06, 1.14, 1.2, 1.1, 1.0, 1.0, 1.04, 1.06, 1.0, 1.0, 1.2}),


             new ZISTRENGTH('辰', '乙',new double[]  {0.36,0.318, 0.342, 0.36, 0.33, 0.3, 0.3, 0.312, 0.318, 0.3, 0.3, 0.36}),


             new ZISTRENGTH('辰', '癸', new double[] {0.24,0.22,  0.2, 0.2, 0.208, 0.2, 0.2, 0.2,0.24, 0.24, 0.212, 0.228}),


             new ZISTRENGTH('辰', '戊',new double[]  {0.5,0.55, 0.53, 0.5, 0.55, 0.6, 0.6, 0.58, 0.5, 0.5, 0.57, 0.5}),


            new ZISTRENGTH('巳', '庚', new double[] {0.3,0.342, 0.3, 0.3, 0.33, 0.3, 0.3, 0.33, 0.342, 0.36, 0.348, 0.3}),


             new ZISTRENGTH('巳', '丙', new double[] {0.7,0.7, 0.84, 0.84, 0.742, 0.84, 0.84, 0.798, 0.7, 0.7, 0.728, 0.742}),


             new ZISTRENGTH('午', '丁', new double[] {1.0,1.0, 1.2, 1.2, 1.06, 1.14, 1.2, 1.1, 1.0, 1.0, 1.04, 1.06}),


             new ZISTRENGTH('未', '丁', new double[] {0.3,0.3, 0.36, 0.36, 0.318, 0.342, 0.36, 0.33, 0.3, 0.3, 0.312, 0.318}),


             new ZISTRENGTH('未', '乙',new double[]  {0.24,0.212, 0.228, 0.24, 0.22, 0.2, 0.2, 0.208, 0.212, 0.2, 0.2, 0.24}),


            new ZISTRENGTH('未', '己', new double[] {0.5,0.55, 0.53, 0.5, 0.55, 0.57, 0.6, 0.58, 0.5, 0.5, 0.57, 0.5}),


             new ZISTRENGTH('申', '壬', new double[] {0.36,0.33, 0.3, 0.3, 0.312, 0.318, 0.3, 0.3, 0.36, 0.36, 0.318, 0.342}),


             new ZISTRENGTH('申', '庚',new double[]  {0.7,0.798, 0.7, 0.7, 0.77, 0.742, 0.7, 0.77, 0.798, 0.84, 0.812, 0.7}),


             new ZISTRENGTH('酉', '辛',new double[]  {1.0,1.14, 1.0, 1.0, 1.1, 1.06, 1.0, 1.1, 1.14, 1.2, 1.16, 1.0}),


             new ZISTRENGTH('戌', '辛',new double[]  {0.3,0.342, 0.3, 0.3, 0.33, 0.318, 0.3, 0.33, 0.342, 0.36, 0.348, 0.3}),


             new ZISTRENGTH('戌', '丁', new double[] {0.2,0.2, 0.24, 0.24, 0.212, 0.228, 0.24, 0.22, 0.2, 0.2, 0.208, 0.212}),
             new ZISTRENGTH('戌', '戊',new double[]  {0.5,0.55, 0.53, 0.5, 0.55, 0.57, 0.6, 0.58, 0.5, 0.5, 0.57, 0.5}),
             new ZISTRENGTH('亥', '甲',new double[]  {0.36,0.318, 0.342, 0.36, 0.33, 0.3, 0.3, 0.312, 0.318, 0.3, 0.3, 0.36}),
             new ZISTRENGTH('亥', '壬',new double[]  {0.84,0.77, 0.7, 0.7, 0.728, 0.742, 0.7, 0.7, 0.84, 0.84, 0.724, 0.798})
            };
            
            /*
                     金 --- 0
                     木 --- 1
                     水 --- 2
                     火 --- 3
                     土 --- 4
            */




            char[] WuXingTable = new char[] { '金', '木', '水', '火', '土' };
            
            /*
                     天干地支的五行属性表
                     天干: 甲-木、乙-木、丙-火、丁-火、戊-土、己-土、庚-金、辛-金、壬-水、癸-水
                     地支:子-水、丑-土、寅-木、卯-木、辰-土、巳-火、午-火、未-土、申-金、酉-金、戌-土、亥-水
            */






            int[] TianGan_WuXingProp = new int[10] { 1, 1, 3, 3, 4, 4, 0, 0, 2, 2 };
            int[] DiZhi_WuXingProp = new int[12] { 2, 4, 1, 1, 4, 3, 3, 4, 0, 0, 4, 2 };
            int[] GenerationSourceTable = new int[5] { 4, 2, 0, 1, 3 };
            
            int ComputeGanIndex(char gan)
            {
                int i;


                for (i = 0; i < 10; i++)
                    if (TianGan[i] == gan) break;


                if (i >= 10) return -1;


                return i;
            }
            
            int ComputeZhiIndex(char zhi)
            {
                int i;


                for (i = 0; i < 12; i++)
                    if (DiZhi[i] == zhi) break;


                if (i >= 12) return -1;


                return i;
            }
            
            static string sResultBuf;   // 用作八字测算结果返回的字符缓冲区


            // 根据八字计算五行平衡
            // 输入参数:bazi,年月日时的干支,即俗称的八字
            // 输出结果:分析结果字符串,Unicode编码
            public string EvalBazi(string bazi)
            {
                double[] strengthResult = new double[5];


                int monthIndex = ComputeZhiIndex(bazi[3]);


                if (monthIndex == -1) return "";
                
                sResultBuf = bazi;
                sResultBuf += "\n\n五行强度:天干 + 支藏\n";


                for (int wuXing = 0; wuXing < 5; wuXing++)
                {
                    double value1 = 0.0, value2 = 0.0;
                    int i;


                    //扫描4个天干
                    for (i = 0; i < 8; i += 2)
                    {


                        char gan = bazi[i];


                        int index = ComputeGanIndex(gan);


                        if (index == -1) return "";
                        
                        if (TianGan_WuXingProp[index] == wuXing)
                            value1 += TianGan_Strength[monthIndex][index];
                    }
                    
                    //扫描支藏
                    for (i = 1; i < 8; i += 2)
                    {
                        char zhi = bazi[i];


                        for (int j = 0; j < DiZhi_Strength.Length; j++)
                        {


                            if (DiZhi_Strength[j].diZhi == zhi)
                            {


                                int zhiCangIndex = ComputeGanIndex(DiZhi_Strength[j].zhiCang);


                                if (zhiCangIndex == -1) return "";


                                if (TianGan_WuXingProp[zhiCangIndex] == wuXing)
                                {
                                    value2 += DiZhi_Strength[j].strength[monthIndex];
                                    break;
                                }
                            }
                        }
                    }


                    strengthResult[wuXing] = value1 + value2;
                    
                    //输出一行计算结果
                    {
                        string preStr;
                        string tmpBuf;


                        tmpBuf = value1.ToString("0.00") + " + " + value2.ToString("0.00") + " = " + (value1 + value2).ToString("0.00") + "\n";
                        
                        preStr = WuXingTable[wuXing] + ":\t";
                        sResultBuf += preStr;
                        sResultBuf += tmpBuf;
                    }
                }


                //根据日干求命里属性
                int fateProp, srcProp;
                {
                    string tmpWBuf;


                    fateProp = TianGan_WuXingProp[ComputeGanIndex(bazi[4])];


                    if (fateProp == -1) return "";
                    
                    tmpWBuf = "\n命属" + WuXingTable[fateProp] + "\n\n";
                    sResultBuf += tmpWBuf;
                }


                //求同类和异类的强度值
                srcProp = GenerationSourceTable[fateProp];
                {
                    string preStr;
                    string tmpBuf;
                    double tongLei = strengthResult[fateProp] + strengthResult[srcProp];
                    double yiLei = 0.0;


                    for (int i = 0; i < 5; i++) yiLei += strengthResult[i];


                    yiLei -= tongLei;
                    
                    tmpBuf = strengthResult[fateProp].ToString("0.00") + " + " + strengthResult[srcProp].ToString("0.00") + " = " + tongLei.ToString("0.00") + "\n";
                    preStr = "同类:" + WuXingTable[fateProp] + "+" + WuXingTable[srcProp] + ",";


                    sResultBuf += preStr;
                    sResultBuf += tmpBuf;


                    tmpBuf = yiLei.ToString("0.00") + "\n";
                    sResultBuf += "异类:总和为 " + tmpBuf;
                }
                return sResultBuf;
            }
        }


    注:原作c代码里面对于hour小时的范围有个前后矛盾,这里加了一句if (hour > 22) hour -= 24;来匹配范围。


    这个方法需要先去比如nongli.net查询八字的前6字,也就是年月子对应的天干和地支,这个查万年历当然是很容易的,不过也可以用代码的形式输入年月日就自动得到这前6字,然后调用本篇的代码算出五行。至于得到前6字的算法大家可以研究nongli.net的js代码然后改写成C#代码,这个大家可以自己尝试哈。能做到自动生成的话,其实本篇的CheckBazi()函数就不需要了。

    值得一提的是,本篇的c语言转成c#还是简单的,其实js转成c#也是简单的,不过有些时间函数C#并没有一一对应的,这里讲解两个关键的。

    在JS里面的Date.UTC(1900,0,6,2,5)这个函数在C#是没有对应的,所以需要自己写,需要注意的是此函数的月份范围是0~11而不是1-12,所以在用C#的datetime来表示的时候,月份需要+1,另外就是时区的问题,中国在东8区,所以正常情况下你的电脑设置的时区也是东8区的北京时间的话,在做转换的时候需要考虑这个问题。UTC返回的可以用double变量来存,用int是不够的切记。

    还有new Date( Date.UTC(1900,0,6,2,5) )这个函数会把计算的UTC数值再转化成日期并取出天的数值,需要写另外一个C#函数来实现,下面是代码。

    public double ConvertDateTimeInt(System.DateTime time)
            {
                double intResult = 0;
                System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
                time = time.AddHours(8);//转化为北京时间(北京时间=UTC时间+8小时 )
                intResult = (time - startTime).TotalMilliseconds;
                return intResult;
            }
            public DateTime ConvertIntDatetime(double utc)
            {
                System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
                startTime = startTime.AddMilliseconds(utc);
                startTime = startTime.AddHours(-8);//转化为北京时间(北京时间=UTC时间+8小时 )
                return startTime;
            }

    这里面的addHours的8和-8都是实际测试验证的。有了上面2个函数,要计算八字就不难了。


    展开全文
  • 计算生辰八字五行属性的算法

    万次阅读 热门讨论 2013-01-26 14:02:13
    我调研了几种起名字的思路,最终确定按照五行阴阳平衡的道理来确定生辰八字的五行属性,然后选取恰当的。   说明:本文描述的算法是根据Internet上的资料整理而得到,并非我原创,但个别地方我做过修改。其中...

    计算生辰八字五行属性的算法

    潘爱民

    2013/1/26

     

    缘起:几年前,小儿出生的几天之内,我需要为他起名字。人生难得接一两回这样的任务,更是格外珍惜。我调研了几种起名字的思路,最终确定按照五行阴阳平衡的道理来确定生辰八字的五行属性,然后选取恰当的字。

     

    说明:本文描述的算法是根据Internet上的资料整理而得到,并非我原创,但个别地方我做过修改。其中经验值的出处已无法找到。

    算法的高度足够,我是坐在飞机上写下这一算法描述的,上万米高空俯瞰大地,感觉到一种静默的平衡J。在过去几年中,我用这一算法测算过十多个生辰八字,也碰到过一两个极端的情形,与现实中的表现比较吻合。因此,我相信这算法的结果有参考意义。但是,因使用该算法引起的任何意外事故,我概不负责,请谨慎使用。

     

    算法的过程如下所述:

    1.       根据出生年月日和时辰,确定八个字,即生辰八字。

    查万年历(比如www.nongli.net),确定前六个字。比如1968年8月8日,查到的结果是:

    戊申辛酉壬寅

    这六个字分别是年份的天干、地支,月份的天干、地支,和日子的天干、地支。

    接下来确定时辰的天干和地支,查下表:

     

    出生
    钟点

    时辰地支

    日干(即第5个字)

    甲 己

    乙 庚

    丙 辛

    丁 壬

    戊 癸

    23-1

    1-3

    3-5

    5-7

    7-9

    9-11

    11-13

    13-15

    15-17

    17-19

    19-21

    21-23

    甲子

    乙丑

    丙寅

    丁卯

    戊辰

    己巳

    庚午

    辛未

    壬申

    癸酉

    甲戌

    乙亥

    丙子

    丁丑

    戊寅

    己卯

    庚辰

    辛巳

    壬午

    癸未

    甲申

    乙酉

    丙戌

    丁亥

    戊子

    己丑

    庚寅

    辛卯

    壬辰

    癸巳

    甲午

    乙未

    丙申

    丁酉

    戊戌

    己亥

    庚子

    辛丑

    壬寅

    癸卯

    甲辰

    己巳

    丙午

    丁未

    戊申

    己酉

    庚戌

    辛亥

    壬子

    癸丑

    甲寅

    乙卯

    丙辰

    丁巳

    戊午

    己未

    庚申

    辛酉

    壬戌

    癸亥

     

    首先根据出生钟点找到相应的行数,再根据第5个字(日干),在右边5列中定位到相应的列,即可得到时辰的天干、地支,即第7、8两个字。譬如,1968年8月8日8点钟,在“7-9”这一行,“丁壬”这一列,得到时辰的干支为“甲辰”,所以,最终的八字为:

    戊申辛酉壬寅甲辰

     

    2.       计算八字的五行属性。

    首先,每个天干和地支都有对应的五行属性,如下面两表所示:

     

    天干属性:

    天干

    属性

    天干

    属性

    天干

    属性

     

     

     

     

     

    地支属性:

    地支

    属性

    地支

    属性

    地支

    属性

     

    接下来,计算五行“金木水火土”的强度值。对于五行中的每一行,其强度值包括两部分:

    l  天干强度:即八字中的4个天干,若其五行属性恰好是这一行,那么就有相应的贡献值,可查表如下:

     

    生月\天干

    子月

    1.2

    1.2

    1.0

    1.0

    1.0

    1.0

    1.0

    1.0

    1.2

    1.2

    丑月

    1.06

    1.06

    1.0

    1.0

    1.1

    1.1

    1.14

    1.14

    1.1

    1.1

    寅月

    1.14

    1.14

    1.2

    1.2

    1.06

    1.06

    1.0

    1.0

    1.0

    1.0

    卯月

    1.2

    1.2

    1.2

    1.2

    1.0

    1.0

    1.0

    1.0

    1.0

    1.0

    辰月

    1.1

    1.1

    1.06

    1.06

    1.1

    1.1

    1.1

    1.1

    1.04

    1.04

    巳月

    1.0

    1.0

    1.14

    1.14

    1.14

    1.14

    1.06

    1.06

    1.06

    1.06

    午月

    1.0

    1.0

    1.2

    1.2

    1.2

    1.2

    1.0

    1.0

    1.0

    1.0

    未月

    1.04

    1.04

    1.1

    1.1

    1.16

    1.16

    1.1

    1.1

    1.0

    1.0

    申月

    1.06

    1.06

    1.0

    1.0

    1.0

    1.0

    1.14

    1.14

    1.2

    1.2

    酉月

    1.0

    1.0

    1.0

    1.0

    1.0

    1.0

    1.2

    1.2

    1.2

    1.2

    戌月

    1.0

    1.0

    1.04

    1.04

    1.14

    1.14

    1.16

    1.16

    1.06

    1.06

    亥月

    1.2

    1.2

    1.0

    1.0

    1.0

    1.0

    1.0

    1.0

    1.14

    1.14

     

    l  地支强度:即八字中的4个地支,它们可能会藏了这一五行对应的天干,比如,“丑”藏了“癸、辛、己”,而癸、辛、己的五行属性分别是水、金、土。所以,地支“丑”对水、金、土都有强度贡献,而强度值的大小则取决于相应的月份。下面的表格涵盖了地支所藏的五行强度值。

     

     

    地支

    支藏

    月支(即第6个字)

    1.2

    1.1

    1.0

    1.0

    1.04

    1.06

    1.0

    1.0

    1.2

    1.2

    1.06

    1.14

    0.36

    0.33

    0.3

    0.3

    0.312

    0.318

    0.3

    0.3

    0.36

    0.36

    0.318

    0.342

    0.2

    0.228

    0.2

    0.2

    0.23

    0.212

    0.2

    0.22

    0.228

    0.248

    0.232

    0.2

    0.5

    0.55

    0.53

    0.5

    0.55

    0.57

    0.6

    0.58

    0.5

    0.5

    0.57

    0.5

    0.3

    0.3

    0.36

    0.36

    0.318

    0.342

    0.36

    0.33

    0.3

    0.3

    0.342

    0.318

    0.84

    0.742

    0.798

    0.84

    0.77

    0.7

    0.7

    0.728

    0.742

    0.7

    0.7

    0.84

    1.2

    1.06

    1.14

    1.2

    1.1

    1.0

    1.0

    1.04

    1.06

    1.0

    1.0

    1.2

    0.36

    0.318

    0.342

    0.36

    0.33

    0.3

    0.3

    0.312

    0.318

    0.3

    0.3

    0.36

    0.24

    0.22

    0.2

    0.2

    0.208

    0.2

    0.2

    0.2

    0.24

    0.24

    0.212

    0.228

    0.5

    0.55

    0.53

    0.5

    0.55

    0.6

    0.6

    0.58

    0.5

    0.5

    0.57

    0.5

    0.3

    0.342

    0.3

    0.3

    0.33

    0.3

    0.3

    0.33

    0.342

    0.36

    0.348

    0.3

    0.7

    0.7

    0.84

    0.84

    0.742

    0.84

    0.84

    0.798

    0.7

    0.7

    0.728

    0.742

    1.0

    1.0

    1.2

    1.2

    1.06

    1.14

    1.2

    1.1

    1.0

    1.0

    1.04

    1.06

    0.3

    0.3

    0.36

    0.36

    0.318

    0.342

    0.36

    0.33

    0.3

    0.3

    0.312

    0.318

    0.24

    0.212

    0.228

    0.24

    0.22

    0.2

    0.2

    0.208

    0.212

    0.2

    0.2

    0.24

    0.5

    0.55

    0.53

    0.5

    0.55

    0.57

    0.6

    0.58

    0.5

    0.5

    0.57

    0.5

    0.36

    0.33

    0.3

    0.3

    0.312

    0.318

    0.3

    0.3

    0.36

    0.36

    0.318

    0.342

    0.7

    0.798

    0.7

    0.7

    0.77

    0.742

    0.7

    0.77

    0.798

    0.84

    0.812

    0.7

    1.0

    1.14

    1.0

    1.0

    1.1

    1.06

    1.0

    1.1

    1.14

    1.2

    1.16

    1.0

    0.3

    0.342

    0.3

    0.3

    0.33

    0.318

    0.3

    0.33

    0.342

    0.36

    0.348

    0.3

    0.2

    0.2

    0.24

    0.24

    0.212

    0.228

    0.24

    0.22

    0.2

    0.2

    0.208

    0.212

    0.5

    0.55

    0.53

    0.5

    0.55

    0.57

    0.6

    0.58

    0.5

    0.5

    0.57

    0.5

    0.36

    0.318

    0.342

    0.36

    0.33

    0.3

    0.3

    0.312

    0.318

    0.3

    0.3

    0.36

    0.84

    0.77

    0.7

    0.7

    0.728

    0.742

    0.7

    0.7

    0.84

    0.84

    0.724

    0.798

     

    回到前面的例子,八字“戊申辛酉壬寅甲辰”,查以上两表,可以得到五行强度为:

    金:0.84 (年支藏庚) + 1.2 (月干) + 1.2 (月支藏辛) = 3.24

    木:0.7 (日支藏甲) + 1.0 (时干) + 0.3 (时支藏乙) = 2.0

    水:0.36 (年支藏壬) + 1.2 (日干) + 0.24 (时支藏癸) = 1.8

    火:0.3 (日支藏丙) = 0.3

    土:1.0 (年干) + 0.5 (时支藏戊) = 1.5

     

    3.       给出起名指示。

    首先确定八字的命里属性。只需查日干的五行属性,即代表了该八字的五行属性。譬如“戊申辛酉壬寅甲辰”的日干“壬”的属性为水,故该八字对应的命里属性为水。

    再计算同类和异类的强度值。所谓同类是指,该八字的五行属性,以及生该五行属性的那个属性,譬如八字的五行属性为水,则水和金合起来称为同类,其他三个:木、火和土合起来称为异类。

    五行的相生关系为:金生水,水生木,木生火,火生土,土生金。

    得到了同类和异类的强度值以后,一个基本的判断是,若两者的数值比较接近,则说明该八字比较平衡,也暗示人生平顺;若两者数值相差较大(比如,大于1,甚至大于2),则说明五行不平衡,可以通过名字来弥补,或者将来找对象时候通过婚姻来补平。

    因此,得到同类和异类数值以后,如何确定“用神”或“喜神”,或者,如何在名字中补平,需要一点点人脑智能,目前尚未量化到算法或程序中。回到前面的例子:

    日干为壬,属水,故命属水

    “同类”数值:5.04

    “异类”数值:3.8

    “同类”比“异类”数值大,日主强,以火为用神。宜补火。

    最后,定下怎么补五行属性以后,剩下就是挑字了,这可以自由发挥了。康熙字典上每个字都有五行属性,可以在Internet上查到。

     

     

    附上代码:

    文件BaziEval.cpp

     

    //BaziEval.cpp : Defines the entry point for the console application.

    //

     

    #include"stdafx.h"

     

    #include<windows.h>

    #include<iostream>

    usingnamespace std;

     

    void Usage()

    {

                       cout << "Usage:\tBaziEval.exe -q <生辰八字中之前六字> -t hh" << endl;

                       cout <<"\tBaziEval.exe -e <生辰八字>" << endl;

                       return;

    }

     

    boolCheckBazi(_TCHAR *bazi);

    _TCHAR *ComputeTimeGan(_TCHAR *bazi, int hour);

    _TCHAR *EvalBazi(_TCHAR *bazi);

     

     

    int_tmain(int argc, _TCHAR* argv[])

    {

             _TCHAR *subCmd, *paraStr;

             if (argc != 5 && argc !=3) {

                       Usage();

                       return 0;

             }

            

             subCmd = argv[1];

             paraStr = argv[2];

             if (argc ==5) {

                       // Parsing the part of"-q <生辰八字中之前六字>"

                       if (!(wcslen(subCmd)==1&& subCmd[0] == 'q' || wcslen(subCmd)==2 && subCmd[0]=='-'&& subCmd[1]=='q')) {

                                Usage();

                                return 0;

                       }

     

                       if (wcslen(paraStr)!=6 ||!CheckBazi(paraStr)) {

                                cout <<"-q后面须跟上生辰日的干支,可以查询万年历,比如在线版本 http://www.nongli.net/" << endl;

                                Usage();

                                return 0;

                       }

                      

                       // Parsing the part of"-t hh:mm"

                       subCmd = argv[3];

                       paraStr = argv[4];

     

                       if (!(wcslen(subCmd)==1&& subCmd[0] == 't' || wcslen(subCmd)==2 && subCmd[0]=='-'&& subCmd[1]=='t')) {

                                Usage();

                                return 0;

                       }

                      

                       int hour = -1;

                       swscanf(paraStr,L"%d", &hour);

                       if (hour <0 || hour>23) {

                                cout <<"Error: 时辰参数不正确,应为0~23之间的一个整点数。" << endl;

                                Usage();

                                return 0;

                       }

     

                       _TCHAR * result =ComputeTimeGan(argv[2], hour);

                       if (result == 0) {

                                cout << "查询不成功!"<< endl;

                       } else {

                                char tmpBuf[128];

                           WideCharToMultiByte( CP_ACP, 0, result, -1,tmpBuf, 127, NULL, NULL );

     

                                cout << "查询八字的结果是:"<< tmpBuf << endl;

                                cout << "接下来您可以用-e命令测算此八字的五行平衡信息。" << endl;

                       }

                       return 0;

             }

     

             if (argc ==3) {

                       // Parsingthe part of "-q <生辰八字中之前六字>"

                       if (!(wcslen(subCmd)==1&& subCmd[0] == 'e' || wcslen(subCmd)==2 && subCmd[0]=='-'&& subCmd[1]=='e')) {

                                Usage();

                                return 0;

                       }

     

                       if (wcslen(paraStr)!=8 ||!CheckBazi(paraStr)) {

                                cout <<"-e后面须跟上生辰八字" << endl;

                                Usage();

                                return 0;

                       }

     

                       _TCHAR *result =EvalBazi(paraStr);

                      

                       if (result == 0) {

                                cout << "测算不成功,另请高明!"<< endl;

                       } else {

                                char tmpBuf[1024];

                           WideCharToMultiByte( CP_ACP, 0, result, -1,tmpBuf, 1024, NULL, NULL );

     

                                cout <<"\n此八字的五行平衡分析结果如下:\n\n" << tmpBuf << endl;

                       }

                       return 0;

             }

     

             Usage();

     

             return 0;

    }

     

    文件BaziAlgorithm.cpp

     

    #include "stdafx.h"

     

    #include <windows.h>

     

    const _TCHAR *TianGan = L"甲乙丙丁戊己庚辛壬癸";

    const _TCHAR *DiZhi = L"子丑寅卯辰巳午未申酉戌亥";

     

    bool CheckBazi(_TCHAR *bazi)

    {

             intbaziLen;

             inti,j;

     

             baziLen= wcslen(bazi);

             if(baziLen != 6 && baziLen != 8 ) return false;

     

             for(i = 0; i < baziLen;) {

                       _TCHARch = bazi[i];

                       for(j = 0; j < 10; j++)

                                if(ch == TianGan[j]) break;

                       if(j >= 10) return false;

                       i++;

     

                       ch= bazi[i];

                       for(j = 0; j < 12; j++)

                                if(ch == DiZhi[j]) break;

                       if(j >= 12) return false;

                       i++;

             }

            

             returntrue;

    }

     

    /*

    根据出生日子的天干,通过下表来查算时辰干支:

    时辰干支查算表

    时间时辰                             五行纪日干支

                           甲己     乙庚     丙辛     丁壬     戊癸

     

    23-01 子/水           甲子     丙子     戊子     庚子     壬子

    01-03 丑/土           乙丑     丁丑     己丑     辛丑     癸丑

    03-05 寅/木           丙寅     戊寅     庚寅     壬寅     甲寅

    05-07 卯/木           丁卯     己卯     辛卯     癸卯     乙卯

    07-09 辰/土           戊辰     庚辰     壬辰     甲辰     丙辰

    09-11 巳/火           己巳     辛巳     癸巳     己巳     丁巳

    11-13 午/火           庚午     壬午     甲午     丙午     戊午

    13-15 未/土           辛未     癸未     乙未     丁未     己未

    15-17 申/金           壬申     甲申     丙申     戊申     庚申

    17-19 酉/金           癸酉     乙酉     丁酉     己酉     辛酉

    19-21 戊/土           甲戌     丙戌     戊戌     庚戌     壬戌

    21-23 亥/水           乙亥     丁亥     己亥     辛亥     癸亥

     

    */

    const _TCHAR * cTimeGanZhi_Table[12][5] =

    {

             {L"甲子",L"丙子", L"戊子", L"庚子", L"壬子"},

             {L"乙丑",L"丁丑", L"己丑", L"辛丑", L"癸丑"},

             {L"丙寅",L"戊寅", L"庚寅", L"壬寅", L"甲寅"},

             {L"丁卯",L"己卯", L"辛卯", L"癸卯", L"乙卯"},

             {L"戊辰",L"庚辰", L"壬辰", L"甲辰", L"丙辰"},

             {L"己巳",L"辛巳", L"癸巳", L"己巳", L"丁巳"},

             {L"庚午", L"壬午",L"甲午", L"丙午", L"戊午"},

             {L"辛未",L"癸未", L"乙未", L"丁未", L"己未"},

             {L"壬申",L"甲申", L"丙申", L"戊申", L"庚申"},

             {L"癸酉",L"乙酉", L"丁酉", L"己酉", L"辛酉"},

             {L"甲戌",L"丙戌", L"戊戌", L"庚戌", L"壬戌"},

             {L"乙亥",L"丁亥", L"己亥", L"辛亥", L"癸亥"}

    };

     

    static _TCHAR sBuf[128];        // 用作八字结果缓冲区

     

    // 根据出生年月日的干支计算时辰干支

    // 输入参数:bazi,年月日的干支,即八字中的前六个字

    // 输入参数:hour,出生时间的小时数,-1~22

    // 输出结果:八字字符串,Unicode编码

    _TCHAR * ComputeTimeGan(_TCHAR *bazi, inthour)

    {

             _TCHARdayGan = bazi[4];

     

             intindexX, indexY;

            

             inti;

             for(i = 0; i < 10; i++)

                       if(dayGan == TianGan[i]) break;

             if(i >= 10) return 0;

             indexX= i;

             if(indexX >=5) indexX -= 5;

             indexY= (hour +1)/2;

     

             wcscpy(sBuf,bazi);

             wcscat(sBuf,cTimeGanZhi_Table[indexY][indexX]);

     

             returnsBuf;

    }

     

    /*

    十二月份天干强度表

    生月\四柱天干        甲              乙              丙              丁              戊              己              庚              辛              壬              癸

    子月                            1.2             1.2             1.0             1.0             1.0             1.0             1.0             1.0             1.2             1.2

    丑月                            1.06 1.06 1.0             1.0             1.1             1.1             1.14 1.14 1.1             1.1

    寅月                            1.14 1.14 1.2             1.2             1.06 1.06 1.0             1.0             1.0             1.0

    卯月                            1.2             1.2             1.2             1.2             1.0             1.0             1.0             1.0             1.0             1.0

    辰月                            1.1             1.1             1.06 1.06 1.1             1.1             1.1             1.1             1.04 1.04

    巳月                            1.0             1.0             1.14 1.14 1.14 1.14 1.06 1.06 1.06 1.06

    午月                            1.0             1.0             1.2             1.2             1.2             1.2             1.0             1.0             1.0             1.0

    未月                            1.04 1.04 1.1             1.1             1.16 1.16 1.1             1.1             1.0             1.0

    申月                            1.06 1.06 1.0             1.0             1.0             1.0             1.14 1.14 1.2             1.2

    酉月                            1.0             1.0             1.0             1.0             1.0             1.0             1.2             1.2             1.2             1.2

    戌月                            1.0             1.0             1.04 1.04 1.14 1.14 1.16 1.16 1.06 1.06

    亥月                            1.2             1.2             1.0             1.0             1.0             1.0             1.0             1.0             1.14 1.14

    */

     

    double TianGan_Strength [12][10] =

    {

             {1.2, 1.2,  1.0,  1.0,  1.0,  1.0,  1.0,  1.0,  1.2,  1.2},

             {1.06,        1.06,         1.0,  1.0,  1.1,  1.1,  1.14,         1.14,         1.1,  1.1},

             {1.14,        1.14,         1.2,  1.2,  1.06,         1.06,         1.0,  1.0,  1.0,  1.0},

             {1.2, 1.2,  1.2,  1.2,  1.0,  1.0,  1.0,  1.0,  1.0,  1.0},

             {1.1, 1.1,  1.06,         1.06,         1.1,  1.1,  1.1,  1.1,  1.04,         1.04},

             {1.0, 1.0,  1.14,         1.14,         1.14,         1.14,         1.06,         1.06,         1.06,         1.06},

             {1.0, 1.0,  1.2,  1.2,  1.2,  1.2,  1.0,  1.0,  1.0,  1.0},

             {1.04,        1.04,         1.1,  1.1,  1.16,         1.16,         1.1,  1.1,  1.0,  1.0},

             {1.06,        1.06,         1.0,  1.0,  1.0,  1.0,  1.14,         1.14,         1.2,  1.2},

             {1.0, 1.0,  1.0,  1.0,  1.0,  1.0,  1.2,  1.2,  1.2,  1.2},

             {1.0, 1.0,  1.04,         1.04,         1.14,         1.14,         1.16,         1.16,         1.06,         1.06},

             {1.2, 1.2,  1.0,  1.0,  1.0,  1.0,  1.0,  1.0,  1.14,         1.14}

    };

     

    /*

    十二月份地支强度表

     

                            生月       子月         丑月         寅月         卯月         辰月         巳月         午月         未月         申月         酉月         戌月         亥月        

    地支         支藏

    子              癸                       1.2             1.1             1.0             1.0             1.04 1.06 1.0             1.0             1.2             1.2             1.06 1.14

    丑              癸                       0.36 0.33 0.3             0.3             0.312        0.318        0.3             0.3             0.36 0.36 0.318        0.342

    丑              辛                       0.2             0.228        0.2             0.2             0.23 0.212        0.2             0.22 0.228        0.248        0.232        0.2           

    丑              己                       0.5             0.55 0.53 0.5             0.55 0.57 0.6             0.58 0.5             0.5             0.57 0.5            

    寅              丙                       0.3             0.3             0.36 0.36 0.318        0.342        0.36 0.33 0.3             0.3             0.342        0.318       

    寅              甲                       0.84 0.742        0.798        0.84 0.77 0.7             0.7             0.728        0.742        0.7             0.7             0.84

    卯              乙                       1.2             1.06 1.14 1.2             1.1             1.0             1.0             1.04 1.06 1.0             1.0             1.2            

    辰              乙                       0.36 0.318        0.342        0.36 0.33 0.3             0.3             0.312        0.318        0.3             0.3             0.36

    辰              癸                       0.24 0.22 0.2             0.2             0.208        0.2             0.2             0.2             0.24 0.24 0.212        0.228       

    辰              戊                       0.5             0.55 0.53 0.5             0.55 0.6             0.6             0.58 0.5             0.5             0.57 0.5            

    巳              庚                       0.3             0.342        0.3             0.3             0.33 0.3             0.3             0.33 0.342        0.36 0.348        0.3            

    巳              丙                       0.7             0.7             0.84 0.84 0.742        0.84 0.84 0.798        0.7             0.7             0.728        0.742       

    午              丁                       1.0             1.0             1.2             1.2             1.06 1.14 1.2             1.1             1.0             1.0             1.04 1.06

    未              丁                       0.3             0.3             0.36 0.36 0.318        0.342        0.36 0.33 0.3             0.3             0.312        0.318       

    未              乙                       0.24 0.212        0.228        0.24 0.22 0.2             0.2             0.208        0.212        0.2             0.2             0.24

    未              己                       0.5             0.55 0.53 0.5             0.55 0.57 0.6             0.58 0.5             0.5             0.57 0.5            

    申              壬                       0.36 0.33 0.3             0.3             0.312        0.318        0.3             0.3             0.36 0.36 0.318        0.342       

    申              庚                       0.7             0.798        0.7             0.7             0.77 0.742        0.7             0.77 0.798        0.84 0.812        0.7            

    酉              辛                       1.0             1.14 1.0             1.0             1.1             1.06 1.0             1.1             1.14 1.2             1.16 1.0            

    戌              辛                       0.3             0.342        0.3             0.3             0.33 0.318        0.3             0.33 0.342        0.36 0.348        0.3            

    戌              丁                       0.2             0.2             0.24 0.24 0.212        0.228        0.24 0.22 0.2             0.2             0.208        0.212       

    戌              戊                       0.5             0.55 0.53 0.5             0.55 0.57 0.6             0.58 0.5             0.5             0.57 0.5            

    亥              甲                       0.36 0.318        0.342        0.36 0.33 0.3             0.3             0.312        0.318        0.3             0.3             0.36

    亥              壬                        0.84 0.77 0.7             0.7             0.728        0.742        0.7             0.7             0.84 0.84 0.724        0.798       

    */

    struct ZISTRENGTH {

             _TCHARdiZhi;

             _TCHARzhiCang;

             doublestrength[12];

    };

     

    ZISTRENGTHDiZhi_Strength [] =

    {

             {L'子', L'癸', {1.2,1.1, 1.0, 1.0,        1.04, 1.06, 1.0,1.0, 1.2, 1.2, 1.06, 1.14}},     

             {L'丑', L'癸', {0.36,0.33, 0.3, 0.3, 0.312, 0.318, 0.3, 0.3, 0.36, 0.36, 0.318, 0.342}},

             {L'丑', L'辛', {0.2,0.228, 0.2, 0.2, 0.23, 0.212, 0.2,         0.22,0.228, 0.248, 0.232, 0.2}},              

             {L'丑', L'己', {0.5,0.55, 0.53, 0.5, 0.55, 0.57, 0.6, 0.58, 0.5, 0.5, 0.57, 0.5}},                 

             {L'寅', L'丙', {0.3,0.3, 0.36, 0.36, 0.318, 0.342, 0.36, 0.33, 0.3, 0.3, 0.342, 0.318}},   

             {L'寅', L'甲', {0.84,0.742, 0.798, 0.84, 0.77, 0.7, 0.7, 0.728, 0.742, 0.7, 0.7, 0.84}},   

             {L'卯', L'乙', {1.2,1.06, 1.14, 1.2, 1.1, 1.0, 1.0, 1.04, 1.06, 1.0, 1.0, 1.2}},             

             {L'辰', L'乙', {0.36,0.318, 0.342, 0.36, 0.33, 0.3, 0.3, 0.312, 0.318, 0.3, 0.3, 0.36}},   

             {L'辰', L'癸', {0.24,0.22,  0.2, 0.2, 0.208, 0.2, 0.2, 0.2,0.24, 0.24, 0.212, 0.228}},       

             {L'辰', L'戊', {0.5,0.55, 0.53, 0.5, 0.55, 0.6, 0.6, 0.58, 0.5, 0.5, 0.57, 0.5}},          

             {L'巳', L'庚', {0.3,0.342, 0.3, 0.3, 0.33, 0.3, 0.3, 0.33, 0.342, 0.36, 0.348, 0.3}},          

             {L'巳', L'丙', {0.7,0.7, 0.84, 0.84, 0.742, 0.84, 0.84, 0.798, 0.7, 0.7, 0.728, 0.742}},   

             {L'午', L'丁', {1.0,1.0, 1.2, 1.2, 1.06, 1.14, 1.2, 1.1, 1.0, 1.0, 1.04, 1.06}},   

             {L'未', L'丁', {0.3,0.3, 0.36, 0.36, 0.318, 0.342, 0.36, 0.33, 0.3, 0.3, 0.312, 0.318}},   

             {L'未', L'乙', {0.24,0.212, 0.228, 0.24, 0.22, 0.2, 0.2, 0.208, 0.212, 0.2, 0.2, 0.24}},   

             {L'未', L'己', {0.5,0.55, 0.53, 0.5, 0.55, 0.57, 0.6, 0.58, 0.5, 0.5, 0.57, 0.5}},                 

             {L'申', L'壬', {0.36,0.33, 0.3, 0.3, 0.312, 0.318, 0.3, 0.3, 0.36, 0.36, 0.318, 0.342}},   

             {L'申', L'庚', {0.7,0.798, 0.7, 0.7, 0.77, 0.742, 0.7, 0.77, 0.798, 0.84, 0.812, 0.7}},               

             {L'酉', L'辛', {1.0,1.14, 1.0, 1.0, 1.1, 1.06, 1.0, 1.1, 1.14, 1.2, 1.16, 1.0}},             

             {L'戌', L'辛', {0.3,0.342, 0.3, 0.3, 0.33, 0.318, 0.3, 0.33, 0.342, 0.36, 0.348, 0.3}},               

             {L'戌', L'丁', {0.2,0.2, 0.24, 0.24, 0.212, 0.228, 0.24, 0.22, 0.2, 0.2, 0.208, 0.212}},   

             {L'戌', L'戊', {0.5,0.55, 0.53, 0.5, 0.55, 0.57, 0.6, 0.58, 0.5, 0.5, 0.57, 0.5}},                 

             {L'亥', L'甲', {0.36,0.318, 0.342, 0.36, 0.33, 0.3, 0.3, 0.312, 0.318, 0.3, 0.3, 0.36}},   

             {L'亥', L'壬', {0.84,0.77, 0.7, 0.7, 0.728, 0.742, 0.7, 0.7, 0.84, 0.84, 0.724, 0.798}}     

    };

     

    /*

             金 --- 0

             木 --- 1

             水 --- 2

             火 --- 3

             土 --- 4

    */

     

    _TCHAR WuXingTable[5] = {L'金', L'木', L'水', L'火', L'土' };

     

    /*

             天干地支的五行属性表

             天干: 甲-木、乙-木、丙-火、丁-火、戊-土、己-土、庚-金、辛-金、壬-水、癸-水

             地支:子-水、丑-土、寅-木、卯-木、辰-土、巳-火、午-火、未-土、申-金、酉-金、戌-土、亥-水

    */

     

    int TianGan_WuXingProp[10] = {1, 1, 3, 3, 4,4, 0, 0, 2, 2};

    int DiZhi_WuXingProp[12] = {2, 4, 1, 1, 4,3, 3, 4, 0, 0, 4, 2};

    int GenerationSourceTable[5] = {4, 2, 0, 1,3};

     

    int ComputeGanIndex(_TCHAR gan)

    {

             inti;

             for(i=0; i < 10; i++)

                       if(TianGan[i] == gan) break;

             if(i >= 10) return -1;

             returni;

    }

     

    int ComputeZhiIndex(_TCHAR zhi)

    {

             inti;

             for(i=0; i < 12; i++)

                       if(DiZhi[i] == zhi) break;

             if(i >= 12) return -1;

             returni;

    }

     

    static _TCHAR sResultBuf[1024];   // 用作八字测算结果返回的字符缓冲区

     

    // 根据八字计算五行平衡

    // 输入参数:bazi,年月日时的干支,即俗称的八字

    // 输出结果:分析结果字符串,Unicode编码

    _TCHAR * EvalBazi(_TCHAR *bazi)

    {

             doublestrengthResult[5];

             intmonthIndex = ComputeZhiIndex(bazi[3]);

             if(monthIndex == -1) goto ERROR_CASE;

     

             wcscpy(sResultBuf,bazi);

             wcscat(sResultBuf,L"\n\n");

             for(int wuXing = 0; wuXing < 5; wuXing++) {

                       doublevalue1 = 0.0, value2 = 0.0;

                       inti;

                       //扫描4个天干

                       for(i  = 0; i <8; i+=2) {

                                TCHARgan = bazi[i];

                                intindex = ComputeGanIndex(gan);

                                if(index == -1) goto ERROR_CASE;

     

                                if(TianGan_WuXingProp[index] == wuXing)

                                         value1+= TianGan_Strength[monthIndex][index];

                       }

     

                       //扫描支藏

                       for(i  = 1; i <8; i+=2) {

                                TCHARzhi = bazi[i];

                                for(intj = 0; j < sizeof (DiZhi_Strength)/sizeof (DiZhi_Strength[0]); j++) {

                                         if(DiZhi_Strength[j].diZhi == zhi) {

                                                   intzhiCangIndex = ComputeGanIndex(DiZhi_Strength[j].zhiCang);

                                                   if(zhiCangIndex == -1) goto ERROR_CASE;

                                                   if(TianGan_WuXingProp[zhiCangIndex] == wuXing) {

                                                            value2+= DiZhi_Strength[j].strength[monthIndex];

                                                            break;

                                                   }

                                         }

                                }

                       }

     

                       strengthResult[wuXing]= value1 + value2;

     

                       //输出一行计算结果

                       {

                                _TCHARpreStr[128];

                                chartmpBuf[128];

                                _TCHARtmpWBuf[256];

                                sprintf(tmpBuf,":%.3f + %.3f = %.3f\n", (float)value1, (float)value2,(float)(value1+value2));

                                MultiByteToWideChar(CP_ACP, 0, tmpBuf, strlen(tmpBuf)+1,

                                         tmpWBuf,sizeof(tmpWBuf)/sizeof(_TCHAR) );

                                wcscpy(preStr,L"金:\t");

                                preStr[0]= WuXingTable[wuXing];

                                wcscat(sResultBuf,preStr);

                                wcscat(sResultBuf,tmpWBuf);

                       }

             }

            

             //根据日干求命里属性

             intfateProp, srcProp;

     

             {

                       _TCHARtmpWBuf[256];

                       fateProp= TianGan_WuXingProp[ComputeGanIndex(bazi[4])];

                       if(fateProp == -1) goto ERROR_CASE;

                       wcscpy(tmpWBuf,L"\n命属金\n\n");

                       tmpWBuf[3]= WuXingTable[fateProp];

                       wcscat(sResultBuf,tmpWBuf);

     

             }

     

             //求同类和异类的强度值

             srcProp= GenerationSourceTable[fateProp];

             {

                       _TCHARpreStr[128];

                       chartmpBuf[128];

                       _TCHARtmpWBuf[256];

     

                       doubletongLei = strengthResult[fateProp] + strengthResult[srcProp];

                       doubleyiLei = 0.0;

                       for(inti = 0; i < 5; i ++) yiLei += strengthResult[i];

                       yiLei-= tongLei;

                      

                       sprintf(tmpBuf,"%.3f+ %.3f = %.3f\n", (float)strengthResult[fateProp],(float)strengthResult[srcProp],

                                (float)tongLei);

                       MultiByteToWideChar(CP_ACP, 0, tmpBuf, strlen(tmpBuf)+1,

                                tmpWBuf,sizeof(tmpWBuf)/sizeof(_TCHAR) );

                       wcscpy(preStr,L"同类:金+金,");

                       preStr[3]= WuXingTable[fateProp];

                       preStr[5]= WuXingTable[srcProp];

                       wcscat(sResultBuf,preStr);

                       wcscat(sResultBuf,tmpWBuf);

     

                       sprintf(tmpBuf,"%.3f\n", (float)yiLei);

                       MultiByteToWideChar(CP_ACP, 0, tmpBuf, strlen(tmpBuf)+1,

                                tmpWBuf,sizeof(tmpWBuf)/sizeof(_TCHAR) );

                       wcscat(sResultBuf,L"异类:总和为 ");

                       wcscat(sResultBuf,tmpWBuf);

             }

     

             returnsResultBuf;

     

    ERROR_CASE:

            

             return0;

    }

     

    展开全文
  • 五行属性查询

    千次阅读 2011-08-24 18:02:06
    纳音五行 五行发生演化,有了更细致的分类,出现纳音五行: 纳音五行表=甲子乙丑海中金;丙寅丁卯炉中火;戊辰己巳大林木;庚午辛未路旁土;壬申癸酉剑锋金;甲戌乙亥山头火;丙子丁丑涧下水;戊寅己卯城头土;...
  • 关于SQL Server查询语句的使用一.查询第二个字母是t或者a的雇员的全部信息select *from employeeswhere firstname like '_[t,a]%'注意:在sql中%表示字符串,所以不可像matlab一样用其注释,两个双斜线好像也不行,/...
  • 缘起:几年前,小儿出生的几天之内,我需要为他起名字。名字很重要吗 一文中我... 姓名五行生克法: 在数理中包含有五行生克的原理,故以数理来剖析姓名时,必须把各数理所属的五行要素辨认清楚。  在辩认五行时,只
  • 数据库查询,返回前5、10数据

    千次阅读 2020-12-09 11:41:20
    1、SQLServer sqlserver 支持top关键字,返回前若干条数据。...两个参数时,第一个参数指定第一个返回记录的偏移量(初始记录的偏移量是0),第二个参数指定返回记录的最大数目。 一个参数:select *
  • vue中实现文字超过2... 展开-收起(兼容ie)

    千次阅读 热门讨论 2019-08-16 17:00:31
    <title>Vue 中文超过2显示省略号 展开-收起 .content { display: flex; margin-bottom: 30px; } .text { position: relative; font-size: 14px; line-height: 20px; letter-spacing: 2px; color: ...
  • 数字藏品指南系列第篇,使用remix验证智能合约,区块浏览器上执行合约方法。
  • 的英语单词

    万次阅读 2014-09-29 17:55:13
    abide v.(by)坚持,遵守 about ad. 在周围,附近,到处;大约,差不多 prep. 关于,对于;在……周围,在……附近 a.... above prep. 在……上面,超过,高于a....abuse v./n....actor n....acute a....adapt v.(to)(使)适应
  • 手把手教你用Java设计并实现一个城市公交查询系统

    万次阅读 多人点赞 2020-12-19 10:11:33
    为了使得我国公交乘客出行及查询有关信息更方便,本文运用JAVA语言技术,Jsp技术,Mysql数据库开发了B/S结构的城市公交查询系统。 该系统顺应了时代发展且具有以下优点:首先,方便乘客的出行,乘客不用询问站牌工作...
  • MySQL子查询

    千次阅读 2022-05-10 08:52:35
    查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从MySQL 4.1开始引入。 SQL 中子查询的使用大大增强了 SELECT 查询的能力,因为很多时候查询需要从结果集中获取数据,或者需要从同一个表中先计算得出...
  • mysql查询所有分类的前5结果

    千次阅读 2017-09-30 21:30:41
    项目遇到个问题,我电商网站,商品有很多分类,我想取出每个分类下面在架的前条数据,并且按照sort升序排列,应该怎么做呢? 数据结构如下:DROP TABLE IF EXISTS `products`; CREATE TABLE `products` ( `id` ...
  • 认识mysql数据库 MySQL是最流行的关系型数据库管理系统 安装mysql 关于数据库的一些概念 数据库 Database 数据表 Tables 数据字段 row 列 2.安装MySQL Mac系统中安装MySQL 使⽤用Mac中的Homebrew进⾏行行mysql的...
  • 在工作做我遇到了如下图,搜索关键字并给返回结果的关键字添加样式 indexOf + substring: 我先插入后面的标签尾,然后在插入前面的标签头,这样第二次再插入标签头就不用再次查找新下标了。...才会一显示
  • import numpy as np import pandas as pd """ pandas查询数据的几种方法 1.df.loc,根据行列标签值进行查询 2.df.iloc,根据行列的数字位置进行查询 3.df.where 4.df.query ...以上查询方法既适用于
  • --前5 select top 5 * from table --后5 select top 5 * from table order by id desc 其中 desc 表示降序排列 asc 表示升序
  • 数据库查询区间数据

    千次阅读 2021-01-31 02:15:18
    这里我说的区间数据就是说,比如我们只查询第20-... // 检索记录 21-30//为了检索从某一个偏移量到记录集的结束所有的记录,可以指定第二个参数为 -1:mysql> SELECT * FROM table LIMIT 95,-1; // 检索记录...
  • 10万208道Java经典面试题总结(附答案)

    万次阅读 多人点赞 2021-08-01 16:05:55
    ,获取《10万208道Java经典面试题总结(附答案)》pdf,背题更方便,一文在手,面试我有 前言 最近有很多粉丝问我,有什么方法能够快速提升自己,通过阿里、腾讯、字节跳动、京东等互联网大厂的面试,我觉得短时间...
  • SQL查询前10条的方法为:1.selecttopX*fromtable_name--查询前X条记录,可以改成需要的数字,比如前10条。2.selecttopX*fromtable_nameorderbycolum_namedesc--按colum_name属性降序排序查询前X条记录,“order by”...
  • 央行数字货币(数字人民币)DCEP

    千次阅读 多人点赞 2020-11-09 10:45:23
    支付清算系统重平衡 中国人民银行有大支付清算系统 大额实时支付系统(HVPS)能够为银行业金融机构和金融市场提供快速、高效、安全、可靠的清算服务,有力支持了人民币跨境支付业务,实现了跨资金清算零在途。...
  • RDB文件结构 一个完整 RDB 文件所包含的各个部分: REDIS,长度5字节, 保存着 "REDIS" 个字符。 通过这个字符, 可以在载入文件时, 快速检查载入文件是否 RDB 文件。 db_version ,长度 4 字节, 它的值...
  • 查询表中第2到第5的数据

    千次阅读 2010-12-09 11:18:23
    分页中使用,查询表中第2到第5的数据 [code="SQL"]select * from( select id,name,rownum as myrow from tuse where rownum1;[/code]
  • ES基本查询语句教程

    千次阅读 2020-12-20 14:43:41
    升序排序 、ES的分页查询 from:从哪开始查 size:返回几条结果 六、ES的bool查询 (must、should) must (must字段对应的是个列表,也就是说可以有多个并列的查询条件,一个文档满足各个子条件后才最终返回) ...
  • B站面面经(附过程、答案)

    万次阅读 多人点赞 2021-07-06 08:45:48
    MongoDB4.6及以上版本才支持视图,且查询效率慢,如果重新做我觉得可以换成Mysql关系型数据库,因为可以多表关联查询 前端用框架,这个项目的前端用的html+原生js,这里的动态查询写了几百的DOM元素操作,费时费力...
  • MySql多表查询优化

    千次阅读 2021-01-18 21:21:22
    一、多表查询连接的选择相信内连接,左连接什么的大家都比较熟悉了,当然还有左外连接什么的,基本用不上,我就补贴出来了,这个图只是让大家熟悉一下各种连接查询。然后要告诉大家的是,需要根据查询的信息,想好...
  • 使用SQL语句进行查询 [Beego模型] .构造查询 [ ... SQL语句关联查询 一:连接类型: 关联查询:只有存在关联的表才能关联查询,完全独立的表之间无法关联 1.关联的类型:自关联,左关联,右关联,全关联(full join)两张表...
  • Python黑帽第二篇文章将分享Python网络攻防基础知识,看看Python能做什么,以及正则表达式、网络爬虫和套接通信入门基础。本文参考了i春秋ADO老师的课程内容,这里真心推荐大家去学习ichunqiu的课程,同时也结合...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 185,290
精华内容 74,116
关键字:

五行 字 查询

友情链接: ops-tx3927.rar