本人自上次编写了一个六十干支九宫飞遁软件(V1.0版),并发到一些玄学术数论坛无偿供大家下载使用,得到了大家的欢迎。根据使用中的一些实际情况及一些易友的意见,今次作了一个升级版本(V1.1版),是在原来洛书九宫顺飞法的基础上,再加上逆飞法,以适应不同的术数使用要求。
本软件特点:
1、用JAVA ME语言编写,可以在绝大多数手机上安装(和普通的JAVA手机软件安装方法一样),方便平时使用。
2、输入参数时采用干支编号方法输入,无需打字及一长串的菜单选择,人性化设计,只要输入两个数字即可,方便快捷。
3、本软件无需注册,完全免费,没有期限,纯是为了广大易学同道,与大家共勉。
有需要的可留言本人索取,或者大家可搜索一些玄学术数论坛以下载本软件,软件文件名为:GanZhiFeiBu.jar。
软件运行效果图:
http://s7/middle/6a370e20gaa21a0feed06&690For Mobile Phone)" TITLE="[转载]六十干支九宫飞遁软件(V1.1版 For Mobile Phone)" />
在此也将源码发布出来,供有需要者参考使用:
import
javax.microedition.lcdui.*;
import
javax.microedition.midlet.MIDlet;
import
javax.microedition.midlet.MIDletStateChangeException;
public class GanZhiFeiBu
extends MIDlet implements CommandListener
{
Display display;
Command cmd_exit,cmd_return,cmd_ok,cmd_help;
Canvas ganzhifeibucanvas_shun,ganzhifeibucanvas_ni;
String ruzhongganzhi,mubiaoganzhi;
String[] ganzhi60,menu_elements;
Form form_canshu;
TextField txt_ruzhongganzhi,txt_mubiaoganzhi;
StringItem ganzhibianhao;
Alert alert_screen;
ChoiceGroup menu;
int selected_index;
public GanZhiFeiBu()
{
display=Display.getDisplay(this);
form_canshu=new Form("六十干支九宫飞遁输入");
txt_ruzhongganzhi=new TextField("输入入中干支编号:","",2,TextField.NUMERIC);
txt_mubiaoganzhi=new TextField("输入目标干支编号:","",2,TextField.NUMERIC);
menu_elements=new String[]{"顺飞","逆飞"};
menu=new ChoiceGroup("洛书九宫飞遁法选择:",Choice.EXCLUSIVE,menu_elements,null);
ganzhi60=new String[]{"甲子","乙丑","丙寅","丁卯","戊辰","己巳","庚午","辛未","壬申","癸酉",
"甲戌","乙亥","丙子","丁丑","戊寅","己卯","庚辰","辛巳","壬午","癸未",
"甲申","乙酉","丙戌","丁亥","戊子","己丑","庚寅","辛卯","壬辰","癸巳",
"甲午","乙未","丙申","丁酉","戊戌","己亥","庚子","辛丑","壬寅","癸卯",
"甲辰","乙巳","丙午","丁未","戊申","己酉","庚戌","辛亥","壬子","癸丑",
"甲寅","乙卯","丙辰","丁巳","戊午","己未","庚申","辛酉","壬戌","癸亥"};
alert_screen=new Alert("注意!","两个输入框都必须输入数字为“1 -60”的干支编号!",null,AlertType.ERROR);
cmd_ok=new Command("确定",Command.EXIT,1);
cmd_return=new Command("返回",Command.BACK,2);
cmd_exit=new Command("退出",Command.EXIT,3);
cmd_help=new Command("帮助",Command.HELP,3);
ganzhibianhao=new StringItem("n六十花甲子干支编号:",
"n-----------------------------------n甲子-1,甲戌-11,甲申-21,甲午-31,甲辰-41,甲寅-51,"+
"n-----------------------------------n乙丑-2,乙亥-12,乙酉-22,乙未-32,乙巳-42,乙卯-52,"+
"n-----------------------------------n丙寅-3,丙子-13,丙戌-23,丙申-33,丙午-43,丙辰-53,"+
"n-----------------------------------n丁卯-4,丁丑-14,丁亥-24,丁酉-34,丁未-44,丁巳-54,"+
"n-----------------------------------n戊辰-5,戊寅-15,戊子-25,戊戌-35,戊申-45,戊午-55,"+
"n-----------------------------------n己巳-6,己卯-16,己丑-26,己亥-36,己酉-46,己未-56,"+
"n-----------------------------------n庚午-7,庚辰-17,庚寅-27,庚子-37,庚戌-47,庚申-57,"+
"n-----------------------------------n辛未-8,辛巳-18,辛卯-28,辛丑-38,辛亥-48,辛酉-58,"+
"n-----------------------------------n壬申-9,壬午-19,壬辰-29,壬寅-39,壬子-49,壬戌-59,"+
"n-----------------------------------n癸酉-10,癸未-20,癸巳-30,癸卯-40,癸丑-50,癸亥-60。");
form_canshu.append(txt_ruzhongganzhi);
form_canshu.append(txt_mubiaoganzhi);
form_canshu.append(menu);
form_canshu.append(ganzhibianhao);
form_canshu.addCommand(cmd_ok);
form_canshu.addCommand(cmd_exit);
form_canshu.addCommand(cmd_help);
form_canshu.setCommandListener(this);
}
protected void destroyApp(boolean arg0)
{
ganzhifeibucanvas_shun=null;
ganzhifeibucanvas_ni=null;
}
protected void pauseApp(){}
protected void startApp()
{
display.setCurrent(form_canshu);
}
public void commandAction(Command cmd,Displayable
displayable)
{
if(cmd==cmd_exit)
{
destroyApp(true);
notifyDestroyed();
}
if(cmd==cmd_return)
{
display.setCurrent(form_canshu);
}
if(cmd==cmd_help)
{
TextBox txtbox_help;
txtbox_help=new TextBox("帮助","将入中宫干支及目标干支的对应编号输入相应框中,"+
"就可以依洛书九宫飞遁法由入中干支遁得目标干支所到方位。"+
"n例如:将“甲子”入中宫,要找“戊子”按洛书九宫顺飞顺序所遁到方位,"+
"即将“甲子”对应编号“1”输入“输入入中干支编号”框中,将“戊子”对应编号"+
"“25”输入“输入目标干支编号”框中,再选择“顺飞”,按“确定”后就可得到“戊子”所飞到方位为“坤宫”。"+
"n版本:V1.1 n作者:三味书屋
n博客:http://blog.sina.com.cn/gdlwm",1000,TextField.UNEDITABLE);
txtbox_help.addCommand(cmd_return);
txtbox_help.setCommandListener(this);
display.setCurrent(txtbox_help);
}
if(cmd==cmd_ok)
{
String ruzhongganzhi_str=txt_ruzhongganzhi.getString();
String mubiaoganzhi_str=txt_mubiaoganzhi.getString();
selected_index=menu.getSelectedIndex();
if ((txt_ruzhongganzhi.getString() ==
null)||("".equals(txt_ruzhongganzhi.getString()))||(txt_mubiaoganzhi.getString()
== null)||("".equals(txt_mubiaoganzhi.getString())))
{
display.setCurrent(alert_screen);
}
else
{
int
ruzhongganzhi_num=Integer.parseInt(ruzhongganzhi_str);
int mubiaoganzhi_num=Integer.parseInt(mubiaoganzhi_str);
if
(ruzhongganzhi_num>=1&&ruzhongganzhi_num<=60
&&
mubiaoganzhi_num>=1&&mubiaoganzhi_num<=60)
{
ruzhongganzhi=ganzhi60[ruzhongganzhi_num-1];
mubiaoganzhi=ganzhi60[mubiaoganzhi_num-1];
if (selected_index==0)
{
ganzhifeibucanvas_shun=new
GanZhiFeiBucanvas_shun(ruzhongganzhi,mubiaoganzhi);
ganzhifeibucanvas_shun.setTitle("干支九宫飞遁(顺飞)");
ganzhifeibucanvas_shun.addCommand(cmd_return);
ganzhifeibucanvas_shun.setCommandListener(this);
ganzhifeibucanvas_shun.setFullScreenMode(false);
display.setCurrent(ganzhifeibucanvas_shun);
}
if
(selected_index==1)
{
ganzhifeibucanvas_ni=new
GanZhiFeiBucanvas_ni(ruzhongganzhi,mubiaoganzhi);
ganzhifeibucanvas_ni.setTitle("干支九宫飞遁(逆飞)");
ganzhifeibucanvas_ni.addCommand(cmd_return);
ganzhifeibucanvas_ni.setCommandListener(this);
ganzhifeibucanvas_ni.setFullScreenMode(false);
display.setCurrent(ganzhifeibucanvas_ni);
}
}
else
{
display.setCurrent(alert_screen);
}
}
}
}
}
import
javax.microedition.lcdui.*;
public class
GanZhiFeiBucanvas_shun extends Canvas
{
String ruzhongganzhi,mubiaoganzhi;
int m,n,cha;
public GanZhiFeiBucanvas_shun(String ruzhongganzhi,String
mubiaoganzhi)
{
this.ruzhongganzhi=ruzhongganzhi;
this.mubiaoganzhi=mubiaoganzhi;
}
protected void paint(Graphics g)
{
int wide=getWidth();
int height=getHeight();
g.setColor(0xFFFFFF);
g.fillRect(0,0,getWidth(),getHeight());
g.setColor(0);
g.drawLine(wide/9,height/3,(wide-wide/9),height/3);//划上面一条横线(井字线)
g.drawLine(wide/9,(height-height/3),(wide-wide/9),(height-height/3));//划下面一条横线(井字线)
g.drawLine(wide/3,height/9,wide/3,(height-height/9));//划左边一条竖线(井字线)
g.drawLine((wide-wide/3),height/9,(wide-wide/3),(height-height/9));//划右边一条竖线(井字线)
g.drawString(ruzhongganzhi,wide/2,(height/2-8),Graphics.TOP|Graphics.HCENTER);//在中宫显示入中干支
String ganzhi60[]={"甲子","乙丑","丙寅","丁卯","戊辰","己巳","庚午","辛未","壬申","癸酉",
"甲戌","乙亥","丙子","丁丑","戊寅","己卯","庚辰","辛巳","壬午","癸未",
"甲申","乙酉","丙戌","丁亥","戊子","己丑","庚寅","辛卯","壬辰","癸巳",
"甲午","乙未","丙申","丁酉","戊戌","己亥","庚子","辛丑","壬寅","癸卯",
"甲辰","乙巳","丙午","丁未","戊申","己酉","庚戌","辛亥","壬子","癸丑",
"甲寅","乙卯","丙辰","丁巳","戊午","己未","庚申","辛酉","壬戌","癸亥"};
for (int i=0;i<ganzhi60.length;i++)
{
if (ganzhi60[i]==ruzhongganzhi)
{
n=i+1;
}
}
for (int j=0;j<ganzhi60.length;j++)
{
if (ganzhi60[j]==mubiaoganzhi)
{
m=j+1;
}
}
if (m>=n)
{
cha=m-n;
}
else
{
cha=(m+60)-n;
}
if
(cha==0||cha==9||cha==18||cha==27||cha==36||cha==45||cha==54)
{
g.drawString(mubiaoganzhi,wide/2,(height/2-8)+20,Graphics.TOP|Graphics.HCENTER);//在中宫显示目标干支
}
if
(cha==1||cha==10||cha==19||cha==28||cha==37||cha==46||cha==55)
{
g.drawString(mubiaoganzhi,(wide-wide/3)+30,(height-height/3)+20,Graphics.TOP|Graphics.HCENTER);//在乾宫显示目标干支
}
if
(cha==2||cha==11||cha==20||cha==29||cha==38||cha==47||cha==56)
{
g.drawString(mubiaoganzhi,(wide-wide/3)+30,(height/2-8),Graphics.TOP|Graphics.HCENTER);//在兑宫显示目标干支
}
if
(cha==3||cha==12||cha==21||cha==30||cha==39||cha==48||cha==57)
{
g.drawString(mubiaoganzhi,wide/3-30,(height-height/3)+20,Graphics.TOP|Graphics.HCENTER);//在艮宫显示目标干支
}
if
(cha==4||cha==13||cha==22||cha==31||cha==40||cha==49||cha==58)
{
g.drawString(mubiaoganzhi,wide/2,height/3-35,Graphics.TOP|Graphics.HCENTER);//在离宫显示目标干支
}
if
(cha==5||cha==14||cha==23||cha==32||cha==41||cha==50||cha==59)
{
g.drawString(mubiaoganzhi,wide/2,(height-height/3)+20,Graphics.TOP|Graphics.HCENTER);//在坎宫显示目标干支
}
if (cha==6||cha==15||cha==24||cha==33||cha==42||cha==51)
{
g.drawString(mubiaoganzhi,(wide-wide/3)+30,height/3-35,Graphics.TOP|Graphics.HCENTER);//在坤宫显示目标干支
}
if (cha==7||cha==16||cha==25||cha==34||cha==43||cha==52)
{
g.drawString(mubiaoganzhi,wide/3-30,(height/2-8),Graphics.TOP|Graphics.HCENTER);//在震宫显示目标干支
}
if (cha==8||cha==17||cha==26||cha==35||cha==44||cha==53)
{
g.drawString(mubiaoganzhi,wide/3-30,height/3-35,Graphics.TOP|Graphics.HCENTER);//在巽宫显示目标干支
}
Font font =
Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_BOLD,Font.SIZE_MEDIUM);//设置下面要显示的字体
g.setFont(font);
g.drawString("坎宫",wide/2,height,Graphics.BOTTOM|Graphics.HCENTER);//显示“坎宫”字样
g.drawString("艮宫",0,height,Graphics.BOTTOM|Graphics.LEFT);//显示“艮宫”字样
g.drawString("乾宫",wide,height,Graphics.BOTTOM|Graphics.RIGHT);//显示“乾宫”字样
g.drawString("震",0,height/2,Graphics.BOTTOM|Graphics.LEFT);//显示“震”字样
g.drawString("宫",0,height/2,Graphics.TOP|Graphics.LEFT);//显示“宫”字样
g.drawString("兑",wide,height/2,Graphics.BOTTOM|Graphics.RIGHT);//显示“兑”字样
g.drawString("宫",wide,height/2,Graphics.TOP|Graphics.RIGHT);//显示“宫”字样
g.drawString("巽宫",0,0,Graphics.TOP|Graphics.LEFT);//显示“巽宫”字样
g.drawString("离宫",wide/2,0,Graphics.TOP|Graphics.HCENTER);//显示“离宫”字样
g.drawString("坤宫",wide,0,Graphics.TOP|Graphics.RIGHT);//显示“坤宫”字样
}
}
import
javax.microedition.lcdui.*;
public class
GanZhiFeiBucanvas_ni extends Canvas
{
String ruzhongganzhi,mubiaoganzhi;
int m,n,cha;
public GanZhiFeiBucanvas_ni(String ruzhongganzhi,String
mubiaoganzhi)
{
this.ruzhongganzhi=ruzhongganzhi;
this.mubiaoganzhi=mubiaoganzhi;
}
protected void paint(Graphics g)
{
int wide=getWidth();
int height=getHeight();
g.setColor(0xFFFFFF);
g.fillRect(0,0,getWidth(),getHeight());
g.setColor(0);
g.drawLine(wide/9,height/3,(wide-wide/9),height/3);//划上面一条横线(井字线)
g.drawLine(wide/9,(height-height/3),(wide-wide/9),(height-height/3));//划下面一条横线(井字线)
g.drawLine(wide/3,height/9,wide/3,(height-height/9));//划左边一条竖线(井字线)
g.drawLine((wide-wide/3),height/9,(wide-wide/3),(height-height/9));//划右边一条竖线(井字线)
g.drawString(ruzhongganzhi,wide/2,(height/2-8),Graphics.TOP|Graphics.HCENTER);//在中宫显示入中干支
String ganzhi60[]={"甲子","乙丑","丙寅","丁卯","戊辰","己巳","庚午","辛未","壬申","癸酉",
"甲戌","乙亥","丙子","丁丑","戊寅","己卯","庚辰","辛巳","壬午","癸未",
"甲申","乙酉","丙戌","丁亥","戊子","己丑","庚寅","辛卯","壬辰","癸巳",
"甲午","乙未","丙申","丁酉","戊戌","己亥","庚子","辛丑","壬寅","癸卯",
"甲辰","乙巳","丙午","丁未","戊申","己酉","庚戌","辛亥","壬子","癸丑",
"甲寅","乙卯","丙辰","丁巳","戊午","己未","庚申","辛酉","壬戌","癸亥"};
for (int i=0;i<ganzhi60.length;i++)
{
if (ganzhi60[i]==ruzhongganzhi)
{
n=i+1;
}
}
for (int j=0;j<ganzhi60.length;j++)
{
if (ganzhi60[j]==mubiaoganzhi)
{
m=j+1;
}
}
if (m>=n)
{
cha=m-n;
}
else
{
cha=(m+60)-n;
}
if
(cha==0||cha==9||cha==18||cha==27||cha==36||cha==45||cha==54)
{
g.drawString(mubiaoganzhi,wide/2,(height/2-8)+20,Graphics.TOP|Graphics.HCENTER);//在中宫显示目标干支
}
if
(cha==1||cha==10||cha==19||cha==28||cha==37||cha==46||cha==55)
{
g.drawString(mubiaoganzhi,wide/3-30,height/3-35,Graphics.TOP|Graphics.HCENTER);//在巽宫显示目标干支
}
if
(cha==2||cha==11||cha==20||cha==29||cha==38||cha==47||cha==56)
{
g.drawString(mubiaoganzhi,wide/3-30,(height/2-8),Graphics.TOP|Graphics.HCENTER);//在震宫显示目标干支
}
if
(cha==3||cha==12||cha==21||cha==30||cha==39||cha==48||cha==57)
{
g.drawString(mubiaoganzhi,(wide-wide/3)+30,height/3-35,Graphics.TOP|Graphics.HCENTER);//在坤宫显示目标干支
}
if
(cha==4||cha==13||cha==22||cha==31||cha==40||cha==49||cha==58)
{
g.drawString(mubiaoganzhi,wide/2,(height-height/3)+20,Graphics.TOP|Graphics.HCENTER);//在坎宫显示目标干支
}
if
(cha==5||cha==14||cha==23||cha==32||cha==41||cha==50||cha==59)
{
g.drawString(mubiaoganzhi,wide/2,height/3-35,Graphics.TOP|Graphics.HCENTER);//在离宫显示目标干支
}
if (cha==6||cha==15||cha==24||cha==33||cha==42||cha==51)
{
g.drawString(mubiaoganzhi,wide/3-30,(height-height/3)+20,Graphics.TOP|Graphics.HCENTER);//在艮宫显示目标干支
}
if (cha==7||cha==16||cha==25||cha==34||cha==43||cha==52)
{
g.drawString(mubiaoganzhi,(wide-wide/3)+30,(height/2-8),Graphics.TOP|Graphics.HCENTER);//在兑宫显示目标干支
}
if (cha==8||cha==17||cha==26||cha==35||cha==44||cha==53)
{
g.drawString(mubiaoganzhi,(wide-wide/3)+30,(height-height/3)+20,Graphics.TOP|Graphics.HCENTER);//在乾宫显示目标干支
}
Font font =
Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_BOLD,Font.SIZE_MEDIUM);//设置下面要显示的字体
g.setFont(font);
g.drawString("坎宫",wide/2,height,Graphics.BOTTOM|Graphics.HCENTER);//显示“坎宫”字样
g.drawString("艮宫",0,height,Graphics.BOTTOM|Graphics.LEFT);//显示“艮宫”字样
g.drawString("乾宫",wide,height,Graphics.BOTTOM|Graphics.RIGHT);//显示“乾宫”字样
g.drawString("震",0,height/2,Graphics.BOTTOM|Graphics.LEFT);//显示“震”字样
g.drawString("宫",0,height/2,Graphics.TOP|Graphics.LEFT);//显示“宫”字样
g.drawString("兑",wide,height/2,Graphics.BOTTOM|Graphics.RIGHT);//显示“兑”字样
g.drawString("宫",wide,height/2,Graphics.TOP|Graphics.RIGHT);//显示“宫”字样
g.drawString("巽宫",0,0,Graphics.TOP|Graphics.LEFT);//显示“巽宫”字样
g.drawString("离宫",wide/2,0,Graphics.TOP|Graphics.HCENTER);//显示“离宫”字样
g.drawString("坤宫",wide,0,Graphics.TOP|Graphics.RIGHT);//显示“坤宫”字样
}
}
(注:本文为三味书屋主人原创,转载需注明出处。博客网址http://blog.sina.com.cn/gdlwm)