// Trieu Nguyen 1997 // Chuo+ng tri`nh na`y hoa`n toa`n mie^~n phi' chu+`ng na`o ba.n kho^ng co' y' ddi.nh ddem no' ra kinh doanh // Ba.n co' the^? su+?a ddo^?i no' mo^.t ca'ch tu+. do nhu+ng xin ddu+`ng que^n te^n nguo+`i vie^'t ra no'. import java.applet.*; import java.awt.*; import java.util.Date; interface StarConst { public final static int thuy=2, moc=3, kim=4, tho=5, hoa=6, chuot=0, suu=1, dan=2, mao=3, thin=4, ran=5, ngo=6, mui=7, khi=8, dau=9, tuat=10, hoi=11, tuvi=0, //6 sao thienco=1, thaiduong=2, vukhuc=3, thiendong=4, liemtrinh=5, thienphu=6, //8sao thaiam=7, thamlang=8, cumon=9, thientuong=10, thienluong=11, thatsat=12, phaquan=13, taphu=14, huubat=15, tamthai=16, battoa=17, vanxuong=18, vankhuc=19, anquang=20, thienquy=21, thaiphu=22, phongcao=23, longtri=24, phuongcac=25, giaithan=26, thienkhoi=27, thienviet=28, thienquan=29, thienphuc=30, thienduc=31, nguyetduc=32, daohoa=33, hongloan=34, thienhy=35, thientai=36, thientho=37, thienthuong=38, thiensu=39, thienkhoc=40, thienhu=41, thienla=42, diavong=43, cothan=44, quatu=45, thienhinh=46, thieny=47, thienrieu=48, thienma=49, hoacai=50, phatoai=51, kiepsat=52, dauquan=53, thientru=54, luunien=55, luuha=56, thiengiai=57, diagiai=58, hoatinh=59, linhtinh=60, thaitue=61, //12 sao quansach=73, thienkhong=74, locton=75, bacsi=76, //12sao kinhduong=88, dala=89, trangsinh=90, //12 sao diakiep=102, diakhong=103, hoaloc=104, hoaquyen=105, hoakhoa=106, hoaky=107, duongphu=108, quocan=109 ; public final static int hd=1, bh=2, dd=3, vd=4, md=5; public final static String[] strnam={"Ti'","Su+?u","Da^`n","Ma~o","Thi`n","Ty.", "Ngo.", "Mu`i","Tha^n","Da^.u","Tua^'t","Ho+.i"}; public final static String[] strcan={"Gia'p","A^'t","Bi'nh","DDinh","Ma^.u","Ky?", "Canh", "Ta^n","Nha^m","Qui'"}; public final static String[] stramduong={"Du+o+ng","A^m"}; public final static String[] strnamnu={"Nam","Nu+~"}; public final static String[] strcung={"Me^.nh","Huynh DDe^.","Phu The^","Tu+? Tu+'c", "Ta`i Ba.ch","Ta^.t A'ch","Thie^n Di","No^ Bo^.c", "Quan Lo^.c","DDie^`n Tra.ch","Phu'c DDu+'c","Phu. Ma^~u"}; public final static String[] strcuc={"Thu?y Nhi. Cu.c","Mo^.c Tam Cu.c","Kim Tu+' Cu.c", "Tho^? Ngu~ Cu.c","Ho?a Lu.c cu.c"}; public final static String[] strsao={"Tu+? vi","Thie^n co+","Tha'i duo+ng","Vu~ khu'c","Thie^n ddo^`ng","Lie^m Trinh", "Thie^n phu?", "Tha'i a^m","Tham lang","Cu+. mo^n","Thie^n tuo+'ng","Thie^n luo+ng","Tha^'t sa't","Pha' Qua^n", "+Ta? phu`","+Hu+~u ba^.t", "+Tam thai","+Ba't to.a", "+Va(n xu+o+ng","+Va(n khu'c", "+A^n quang","+Thie^n quy'", "+Thai phu.","+Phong ca'o", "+Long tri`","+Phu+o+.ng ca't","+Gia?i tha^`n", "+Thie^n kho^i","+Thie^n vie^.t", "+Thie^n quan","+Thie^n Phu'c", "+Thie^n ddu+'c","+Nguye^.t ddu+'c", "+DDa`o hoa","+Ho^`ng loan","+Thie^n hy?", "+Thie^n ta`i", "+Thie^n tho.", "-Thie^n thu+o+ng","-Thie^n su+'", "-Thie^n kho^'c", "-Thie^n hu+", "-Thie^n la","-DDi.a vo~ng", "-Co^ tha^`n","-Qua? tu'", "-Thie^n hi`nh","+Thie^n y","-Thie^n rie^u", "+Thie^n ma~","+Hoa ca'i","-Pha' toa'i", "-Kie^'p sa't","-DDa^?u qua^n","+Thie^n tru`", "+Va(n tinh","-Lu+u ha`", "+Thie^n gia?i", "+DDi.a gia?i", "-Ho?a tinh","-Linh tinh", "-Tha'i tue^'","+Thie^'u duo+ng","-Tang mo^n","+Thie^'u a^m", "-Quan phu`","-Tu+? phu?","-Tue^' pha","+Long ddu+'c", "-Ba.ch Ho^?","+Phu'c ddu+'c","-DDie^'u kha'ch","-Tru+.c phu`", "+Qua'n sa'ch","-Thie^n kho^ng", "+Lo^.c to^`n","+Ba'c si~","+Lu+.c si~","+Thanh long","-Tie^?u hao", "-Tu+o+'ng qua^n","+Ta^'u thu+","-Phi lie^m","+Hy? tha^`n", "-Be^.nh phu`","-DDa.i hao","-Phu.c binh","-Quan phu?", "-Ki`nh du+o+ng","-DDa` la", "+Tra`ng sinh","-Mo^.c du.c","-Quan ddo+'i","+La^m quan", "+DDe^' vuo+.ng","-Suy","-Be^.nh","-Tu+?", "-Mo^.","-Tuye^.t","-Thai","+Duo+~ng", "-DDi.a kie^'p","-DDi.a kho^ng", "+Ho'a lo^.c","+Ho'a quye^`n","+Ho'a khoa","-Ho'a Ky.", "+DDu+o+`ng phu`","+Quo^'c A^'n" }; public final static int dialoi[][]={ {bh,dd,md,bh,vd,md,md,dd,md,bh,vd,bh}, //tuvi {dd,dd,hd,md,md,vd,dd,dd,vd,md,md,hd}, //thienco {hd,dd,vd,vd,vd,md,md,dd,hd,hd,hd,hd}, //thaiduong {vd,md,vd,dd,md,hd,vd,md,vd,dd,md,hd}, //vukhuc {vd,hd,md,dd,hd,dd,hd,hd,md,hd,hd,dd}, //thiendong {vd,dd,vd,hd,md,hd,md,dd,vd,hd,md,hd}, //liemtrinh {md,bh,md,bh,vd,dd,md,dd,md,bh,vd,dd}, //thienphu {vd,dd,hd,hd,hd,hd,hd,dd,vd,md,md,md}, //thaiam {hd,md,dd,hd,vd,hd,hd,md,dd,hd,vd,hd}, //thamlang {vd,hd,vd,md,hd,hd,vd,hd,dd,md,hd,dd}, //cumon {vd,dd,md,hd,vd,dd,vd,dd,md,hd,vd,dd}, //thientuong {vd,dd,vd,vd,md,hd,md,dd,vd,hd,md,hd}, //thienluong {md,dd,md,hd,hd,vd,md,dd,md,hd,hd,vd}, //thatsat {md,vd,hd,hd,dd,hd,md,vd,hd,hd,dd,hd} //phaquan }; public final static int nguhanhsao[]={ tho,//"Tu+? vi" moc,//"Thie^n co+" hoa,//"Tha'i duo+ng" kim,//"Vu~ khu'c" thuy,//"Thie^n ddo^`ng" hoa,//"Lie^m Trinh" tho,//"Thie^n phu?" thuy,//"Tha'i a^m" thuy,//"Tham lang" thuy,//"Cu+. mo^n" thuy,//"Thie^n tuo+'ng" moc,//"Thie^n luo+ng" kim,//"Tha^'t sa't" thuy,//"Pha' Qua^n" tho,//"+Ta? phu`" tho,//"+Hu+~u ba^.t" thuy,//"+Tam thai" moc,//"+Ba't to.a" kim,//"+Va(n xu+o+ng" thuy,//"+Va(n khu'c" moc,//"+A^n quang" tho,//"+Thie^n quy'" kim,//"+Thai phu." tho,//"+Phong ca'o" thuy,//"+Long tri`" tho,//"+Phu+o+.ng ca't" moc,//"+Gia?i tha^`n" hoa,//"+Thie^n kho^i" hoa,//"+Thie^n vie^.t" hoa,//"+Thie^n quan" hoa,//"+Thie^n Phu'c" hoa,//"+Thie^n ddu+'c" hoa,//"+Nguye^.t ddu+'c" moc,//"+DDa`o hoa" thuy,//"+Ho^`ng loan" thuy,//"+Thie^n hy?" tho,//"+Thie^n ta`i" tho,// "+Thie^n tho." tho,//"-Thie^n thu+o+ng" thuy,//"-Thie^n su+'" thuy,//"-Thie^n kho^'c" thuy,// "-Thie^n hu+" tho,//"-Thie^n la" tho,//"-DDi.a vo~ng" tho,//"-Co^ tha^`n" tho,//"-Qua? tu'" hoa,//"-Thie^n hi`nh" thuy,//"+Thie^n y" thuy,//"-Thie^n rie^u" hoa,//"+Thie^n ma~" kim,//"+Hoa ca'i" hoa,//"-Pha' toa'i" hoa,//"-Kie^'p sa't" hoa,//"-DDa^?u qua^n" tho,//"+Thie^n tru`" hoa,//"+Va(n tinh" thuy,//"-Lu+u ha`" hoa,//"+Thie^n gia?i" tho,// "+DDi.a gia?i" hoa,//"-Ho?a tinh" hoa,//"-Linh tinh" hoa,//"-Tha'i tue^'" hoa,//"+Thie^'u duo+ng" moc,//"-Tang mo^n" thuy,//"+Thie^'u a^m" hoa,//"-Quan phu`" kim,//"-Tu+? phu?" hoa,//"-Tue^' pha" thuy,//"+Long ddu+'c" kim,//"-Ba.ch Ho^?" tho,//"+Phu'c ddu+'c" hoa,//"-DDie^'u kha'ch" kim,//"-Tru+.c phu`" hoa+1,//"+Qua'n sa'ch" hoa,//"-Thie^n kho^ng" tho,//"+Lo^.c to^`n" thuy,//"+Ba'c si~" hoa,//"+Lu+.c si~" thuy,//"+Thanh long" hoa,//"-Tie^?u hao" moc,//"-Tu+o+'ng qua^n" kim,//"+Ta^'u thu+" hoa,//"-Phi lie^m" hoa,//"+Hy? tha^`n" tho,//"-Be^.nh phu`" hoa,//"-DDa.i hao" hoa,//"-Phu.c binh" hoa,//"-Quan phu?" kim,//"-Ki`nh du+o+ng" kim,//"-DDa` la" thuy,//"+Tra`ng sinh" thuy,//"-Mo^.c du.c" kim,//"-Quan ddo+'i" kim,//"+La^m quan" kim,//"+DDe^' vuo+.ng" thuy,//"-Suy" hoa,//"-Be^.nh" thuy,//"-Tu+?" tho,//"-Mo^." tho,//"-Tuye^.t" tho,//"-Thai" moc,//"+Duo+~ng" hoa,//"-DDi.a kie^'p" hoa,//"-DDi.a kho^ng" moc,//"+Ho'a lo^.c" thuy,//"+Ho'a quye^`n" thuy,//"+Ho'a khoa" thuy,//"-Ho'a ky." moc,//"+DDu+o+`ng phu`" tho,//"+Quo^'c A^'n" }; public final static String strmenh[]= { "Ha?i trung kim","Gia?n ha.thu?y","Ti'ch li.ch ho?a","Bi'ch thu+o+.ng tho^?","Tang ddo^' mo^.c", "DDa.i khe^ thu?y","Lo^. trung ho?a","Tha`nh dda^`u tho^?","Tu`ng ba'ch mo^.c","Kim ba.c kim", "Phu' dda(ng ho?a","Sa trung tho^?","DDa.i la^m mo^.c","Ba.ch la.p kim", "Tru+o+`ng lu+u thu?y", "Sa trung kim","Thie^n ha. thu?y","Thie^n thu+o+.ng ho?a","Lo^. ba(ng tho^?","Duo+ng lie^~u mo^.c", "Tuye^`n trung thu?y","So+n ha. ho?a","DDa.i di.ch tho^?","Tha.ch lu+.u mo^.c","Kie^'m phong kim", "So+n dda^`u ho?a","O^'c thu+o+.ng tho^?","Bi`nh ddi.a mo^.c","Thoa xuye^'n kim","DDa.i ha?i thu?y" }; public final static int nguhanhcung[]={thuy,tho,moc,moc,tho,hoa,hoa,tho,kim,kim,tho,thuy}; public final static Color nguhanhcolor[]={Color.black, new Color(0,255,0),Color.white,Color.yellow,Color.red,Color.black}; }; public class tuvi extends Applet implements StarConst { String name; int ngay,thang,nam,can,gio,namnu; int amduong,manh,than,cuc; int tuan,triet; Tcung cung[] ; int sao[]; Date ToDate; java.awt.Label phaistr; java.awt.Label tenstr; java.awt.TextField ten; java.awt.Choice phai_; java.awt.Label ngaystr; java.awt.Label giostr; java.awt.Choice gio_; java.awt.Choice ngay_; java.awt.Label thangstr; java.awt.Choice thang_; java.awt.Label namstr; java.awt.Choice nam_; java.awt.Choice can_; java.awt.Label amlichstr; java.awt.Label TuoiAmDuong; java.awt.Label TuoiMenh; java.awt.Label TuoiCuc; java.awt.Label SaoChuMenh; java.awt.Label SaoChuThan; java.awt.Button BDDate; java.awt.Button BIDate; java.awt.Button BDMonth; java.awt.TextField ThangDuong; java.awt.Button BIMonth; java.awt.Button BIYear; java.awt.TextField NamDuong; java.awt.Button BDYear; java.awt.Button AmSangDuong; java.awt.TextField NgayDuong; java.awt.Label TieuHanStr[]; public String getAppletInfo() { return "Name: tuvi\r\n" + "Author: Trieu Nguyen\r\n" ; } public void init() { int i; setLayout(null); resize(800,640); setBackground(new Color(160,160,160)); sao= new int [120]; cung = new Tcung[12]; TieuHanStr = new java.awt.Label[12]; int dx[]={2,1,0,0,0,0,1,2,3,3,3,3}; int dy[]={3,3,3,2,1,0,0,0,0,1,2,3}; for (i=0;i<12;i++) { cung[i]= new Tcung(); cung[i].reshape(dx[i]*200,dy[i]*160,200,160); add(cung[i]); TieuHanStr[i] = new Label("Ma~o"); TieuHanStr[i].reshape(dx[i]*118+200,dy[i]*100+162,44,20); add(TieuHanStr[i]); }; tenstr = new java.awt.Label("te^n"); tenstr.reshape(240,190,40,20); add(tenstr); ten = new java.awt.TextField(); ten.reshape(290,190,124,20); add(ten); phaistr = new java.awt.Label("Pha'i"); phaistr.reshape(420,190,40,20); add(phaistr); phai_ = new java.awt.Choice(); for (i=0;i<2;i++) phai_.addItem(strnamnu[i]); add(phai_); phai_.reshape(470,190,60,21); phai_.select(0); ngaystr = new java.awt.Label("nga`y"); ngaystr.reshape(240,220,40,20); add(ngaystr); ngay_ = new java.awt.Choice(); for (i=1;i<=30;i++) ngay_.addItem(String.valueOf(i)); add(ngay_); ngay_.reshape(290,220,50,21); ngay_.select(0); thangstr = new java.awt.Label("tha'ng"); thangstr.reshape(340,220,50,20); add(thangstr); thang_ = new java.awt.Choice(); for (i=1;i<=12;i++) thang_.addItem(String.valueOf(i)); add(thang_); thang_.reshape(390,220,50,21); thang_.select(0); namstr = new java.awt.Label("na(m"); namstr.reshape(240,250,50,20); add(namstr); nam_ = new java.awt.Choice(); for (i=0;i<12;i++) nam_.addItem(strnam[i]); add(nam_); nam_.reshape(370,250,50,21); nam_.select(0); can_ = new java.awt.Choice(); for (i=0;i<10;i++) can_.addItem(strcan[i]); add(can_); can_.reshape(290,250,70,21); can_.select(0); amlichstr = new java.awt.Label("(A^m li.ch)"); amlichstr.reshape(440,250,90,20); add(amlichstr); giostr = new java.awt.Label("gio+`"); giostr.reshape(240,280,40,20); add(giostr); gio_ = new java.awt.Choice(); for (i=0;i<12;i++) gio_.addItem(strnam[i]+" ("+String.valueOf(i*2)+":00 - "+String.valueOf(i*2+1)+":59)"); add(gio_); gio_.select(0); gio_.reshape(290,280,100,20); TuoiAmDuong = new java.awt.Label("Tuo^?i:"); TuoiAmDuong.reshape(240,310,300,20); add(TuoiAmDuong); TuoiMenh = new java.awt.Label("Me^.nh:"); TuoiMenh .reshape(240,330,190,20); add(TuoiMenh); TuoiCuc = new java.awt.Label("Cu.c: "); TuoiCuc .reshape(240,350,190,20); add(TuoiCuc); SaoChuMenh = new java.awt.Label("Sao Chu? Me^.nh: "); SaoChuMenh .reshape(240,370,190,20); add(SaoChuMenh ); SaoChuThan = new java.awt.Label("Sao Chu? Tha^n:"); SaoChuThan .reshape(240,390,190,20); add(SaoChuThan ); BDDate = new java.awt.Button("<"); BDDate.reshape(220,430,14,20); add(BDDate); NgayDuong = new java.awt.TextField(); NgayDuong.reshape(237,430,20,21); add(NgayDuong); BIDate = new java.awt.Button(">"); BIDate.reshape(260,430,14,20); add(BIDate); BDMonth = new java.awt.Button("<"); BDMonth.reshape(280,430,14,20); add(BDMonth); ThangDuong = new java.awt.TextField(); ThangDuong.reshape(297,430,20,21); add(ThangDuong); BIMonth = new java.awt.Button(">"); BIMonth.reshape(320,430,14,20); add(BIMonth); BDYear = new java.awt.Button("<"); BDYear.reshape(340,430,14,20); add(BDYear); NamDuong = new java.awt.TextField(); NamDuong.reshape(357,430,40,21); add(NamDuong); BIYear = new java.awt.Button(">"); BIYear.reshape(400,430,14,20); add(BIYear); AmSangDuong = new java.awt.Button("Du+o+ng Li.ch qua A^m Li.ch"); AmSangDuong.reshape(420,430,160,21); add(AmSangDuong); NgayDuong.setEditable(false); ThangDuong.setEditable(false); NamDuong.setEditable(false); ToDate=new Date(); UpdateDuong(); Create(gio_.getSelectedIndex()+1,ngay_.getSelectedIndex()+1,thang_.getSelectedIndex()+1, nam_.getSelectedIndex()+1,can_.getSelectedIndex()+1,phai_.getSelectedIndex()+1); } public boolean action(Event e, Object o) { if(e.target instanceof Button) { if (e.target==AmSangDuong) { DuonglichQuaAmlich temp = new DuonglichQuaAmlich (ToDate.getDate(), ToDate.getMonth()+1,ToDate.getYear()); ngay_.select(temp.getngay()-1); thang_.select(temp.getthang()-1); nam_.select(temp.getchi()); can_.select(temp.getcan()); } else { if (e.target==BDDate && ToDate.getDate()>1) ToDate.setDate(ToDate.getDate()-1); if (e.target==BIDate && ToDate.getDate()<31) ToDate.setDate(ToDate.getDate()+1); if (e.target==BDMonth && ToDate.getMonth()>0) ToDate.setMonth(ToDate.getMonth()-1); if (e.target==BIMonth && ToDate.getMonth()<11) ToDate.setMonth(ToDate.getMonth()+1); if (e.target==BDYear && ToDate.getYear()>1) ToDate.setYear(ToDate.getYear()-1); if (e.target==BIYear && ToDate.getYear()<99) ToDate.setYear(ToDate.getYear()+1); UpdateDuong(); return true; }; }; Create(gio_.getSelectedIndex()+1,ngay_.getSelectedIndex()+1,thang_.getSelectedIndex()+1, nam_.getSelectedIndex()+1,can_.getSelectedIndex()+1,phai_.getSelectedIndex()+1); return true; } public void destroy() { // TODO: Place applet cleanup code here } public void start() { // TODO: Place additional applet start code here } public void stop() { } synchronized void Create(int gio_,int ngay_,int thang_,int nam_, int can_,int namnu_) { int i; gio=gio_; ngay=ngay_; thang=thang_; nam=nam_; can=can_; if (nam%2!=can%2) can=can%10 +1; namnu=namnu_; amduong=(can-1) %2; manh=(thang+14-gio)%12; than=(thang+gio)%12; int[][] cucarr={{thuy,hoa,moc,tho,kim,hoa}, {hoa,tho,kim,moc,thuy,tho}, {tho,moc,thuy,kim,hoa,moc}, {moc,kim,hoa,thuy,tho,kim}, {kim,thuy,tho,hoa,moc,thuy}}; cuc=cucarr[(can-1) % 5][manh/2]; for (i=0;i<12;i++) { int j=(i+12-manh)%12; if (amduong!=namnu-1) j=(12-i+manh)%12; String St= String.valueOf(cuc+j*10); if (i==than) cung[i].Setname(strcung[(manh+12-i) % 12]+" (THA^N)",i,St); else cung[i].Setname(strcung[(manh+12-i) % 12],i,St); int tieu_han[]={tuat,mui,thin,suu}; if (namnu==1) TieuHanStr[i].setText(strnam[(11-tieu_han[(nam-1)%4]+nam+i)%12]); else TieuHanStr[i].setText(strnam[(11+tieu_han[(nam-1)%4]+nam-i)%12]); }; triet=(4-(can-1)%5)*2; tuan=(nam+22-can) %12; cung[triet].Settriet(); cung[triet+1].Settriet(); cung[tuan].Settuan(); cung[tuan+1].Settuan(); int[] tuviarr={10,7,12,5,2,3}; int tu_vi=( (ngay-1) / cuc + tuviarr[(ngay-1) % cuc+6-cuc]+11)% 12; Add(tuvi,tu_vi); Add(tuvi+1,(tu_vi+11)%12); Add(tuvi+2,(tu_vi+9)%12); Add(tuvi+3,(tu_vi+8)%12); Add(tuvi+4,(tu_vi+7)%12); Add(tuvi+5,(tu_vi+4)%12); int thien_phu=(16-tu_vi)% 12; for (i=0;i<7;i++) Add(thienphu+i,(thien_phu+i)%12); Add(thienphu+7,(thien_phu+10)%12); Add(taphu,(thang+3)%12); Add(huubat,(23-thang)%12); Add(tamthai,(sao[taphu]+ngay+11)%12); Add(battoa,(121+sao[huubat]-ngay)%12); Add(vankhuc,(gio+3)%12); Add(vanxuong,(23-gio)%12); Add(anquang,(sao[vanxuong]+ngay+10)%12); Add(thienquy,(122+sao[vankhuc]-ngay)%12); Add(thaiphu,(ngo-1+gio)%12); Add(phongcao,(dan-1+gio)%12); Add(longtri,(nam+thin-1)%12); Add(phuongcac,(23-nam)%12); Add(giaithan,(23-nam)%12); int thien_khoi[]={suu,chuot,hoi,hoi,suu,chuot,ngo,ngo,mao,mao}; int thien_viet[]={mui,khi,dau,dau,mui,khi,dan,dan,ran,ran}; Add(thienkhoi,thien_khoi[can-1]); Add(thienviet,thien_viet[can-1]); int thien_quan[]={mui,thin,ran,dan, mao,dau,hoi,dau,tuat,ngo}; int thien_phuc[]={dau,khi,chuot,hoi,mao,dan,ngo,ran,ngo,ran}; Add(thienquan,thien_quan[can-1]); Add(thienphuc,thien_phuc[can-1]); Add(nguyetduc,(nam+ran-1)%12); Add(thienduc,(nam+dau-1)%12); int[] dao_hoa={dau,ngo,mao,chuot}; Add(daohoa,dao_hoa[(nam-1) %4]); Add(hongloan,(mao+13-nam)%12); Add(thienhy,(mao+19-nam)%12); Add(thientai,(manh+nam+11)%12); Add(thientho,(than+nam-1)%12); Add(thienthuong,(manh+5)%12); Add(thiensu,(manh+7)%12); Add(thienkhoc,(ngo+13-nam)%12); Add(thienhu,(ngo-1+nam)%12); Add(thienla,thin); Add(diavong,tuat); int co_than[]={dan,dan,ran,ran,ran,khi,khi,khi, hoi,hoi,hoi,dan}; int qua_tu[] ={tuat,tuat,suu,suu,suu,thin,thin,thin, mui,mui,mui,tuat}; Add(cothan,co_than[nam-1]); Add(quatu,qua_tu[nam-1]); Add(thienhinh,(dau+thang-1)%12); Add(thieny,(suu+thang-1)%12); Add(thienrieu,(suu+thang-1)%12); int thien_ma[]={dan,hoi,khi,ran}; Add(thienma,thien_ma[(nam-1)%4]); int hoa_cai[]={thin,suu,tuat,mui}; Add(hoacai,hoa_cai[(nam-1)%4]); int pha_toai[]={ran,suu,dau}; Add(phatoai,pha_toai[(nam-1)%3]); int kiep_sat[]={ran,dan,hoi,khi}; Add(kiepsat,kiep_sat[(nam-1)%4]); int thien_tru[]={ran,ngo,chuot,ran,ngo,khi,dan,ngo,dau,tuat}; Add(thientru,thien_tru[can-1]); int luu_nien[]={ran,ngo,khi,dau,khi,dau,hoi,chuot,dau,mao}; Add(luunien,luu_nien[can-1]); int luu_ha[]={dau,tuat,mui,khi,chuot,ngo,mao,thin,hoi,dan}; //int luu_ha[]={dau,tuat,mui,thin,chuot,ngo,than,mao,hoi,dan}; Add(luuha,luu_ha[can-1]); Add(thiengiai,(khi+thang-1)%12); Add(diagiai,(mui+thang-1)%12); int linh_tinh=mao; if ((nam-1)%4!=dan) linh_tinh=tuat; if (namnu-1==amduong) Add(linhtinh,(13-gio+linh_tinh)%12); else Add(linhtinh,(gio-1+linh_tinh)%12); int hoa_tinh[]={dan,mao,suu,dau}; if (namnu-1==amduong) Add(hoatinh,(gio-1+hoa_tinh[(nam-1)%4])%12); else Add(hoatinh,(13-gio+hoa_tinh[(nam-1)%4])%12); for (i=0;i<12;i++) Add(thaitue+i,(nam-1+i)%12); Add(quansach,(nam+10) % 12); Add(thienkhong, nam %12); Add(dauquan,(nam+23-thang+gio)%12); int loc_ton[]={dan,mao,ran,ngo,ran,ngo,khi,dau,hoi,chuot}; Add(locton,loc_ton[can-1]); for (i=0;i<12;i++) if (amduong==namnu-1) Add(bacsi+i,(loc_ton[can-1]+i)%12); else Add(bacsi+i,(loc_ton[can-1]+12-i)%12); Add(kinhduong,(sao[locton]+1)%12); Add(dala,(sao[locton]+11)%12); int trang_sinh[]={khi,hoi,ran,khi,dan}; for (i=0;i<12;i++) if (amduong==namnu-1) Add(trangsinh+i,(trang_sinh[cuc-2]+i) %12); else Add(trangsinh+i,(trang_sinh[cuc-2]+12-i) %12); Add(diakiep,(hoi-1+gio)%12); Add(diakhong,(hoi+13-gio)%12); int hoa_loc[]={liemtrinh,thienco,thiendong,thaiam,thamlang, vukhuc,thaiduong,cumon,thienluong,phaquan}; int hoa_quyen[]={phaquan,thienluong,thienco,thiendong,thaiam, thamlang,vukhuc,thaiduong,tuvi,cumon}; int hoa_khoa[]={vukhuc,tuvi,vanxuong,thienco,huubat, thienluong,thaiam,vankhuc,taphu,thaiam}; int hoa_ky[]={thaiduong,thaiam,liemtrinh,cumon,thienco, vankhuc,thiendong,vanxuong,vukhuc,thamlang}; Add(hoaloc,sao[hoa_loc[can-1]]); Add(hoaquyen,sao[hoa_quyen[can-1]]); Add(hoakhoa,sao[hoa_khoa[can-1]]); Add(hoaky,sao[hoa_ky[can-1]]); int duong_phu[]={mui,khi,tuat,hoi,tuat,hoi,suu,dan,thin,ran}; int quoc_an[]={tuat,hoi,suu,dan,suu,dan,thin,ran,mui,khi}; Add(duongphu,duong_phu[can-1]); Add(quocan,quoc_an[can-1]); TuoiAmDuong.setText("Tuo^?i: "+stramduong[amduong]+" "+strnamnu[namnu-1]); TuoiMenh.setText("Me^.nh: "+strmenh[( (nam-1)/2)*5 + ((can-1)/2)]); TuoiCuc.setText("Cu.c: "+strcuc[cuc-2]); int sao_menh[]={thamlang,cumon,locton,vankhuc,liemtrinh,vukhuc, phaquan,vukhuc,liemtrinh,vankhuc,locton,cumon}; int sao_than[]={linhtinh,thientuong,thienluong,thiendong,vanxuong,thienco, hoatinh,thientuong,thienluong,thiendong,vanxuong,thienco}; String s=strsao[sao_menh[nam-1]]; if ((s.charAt(0)=='+') || (s.charAt(0)=='-')) s=s.substring(1); SaoChuMenh.setText("Sao chu? me^.nh: "+s); s=strsao[sao_than[nam-1]]; if ((s.charAt(0)=='+') || (s.charAt(0)=='-')) s=s.substring(1); SaoChuThan.setText("Sao chu? tha^n: "+s); }; void Add(int s,int c) { sao[s]=c; cung[c].Add(s); }; void UpdateDuong() { NgayDuong.setText(String.valueOf(ToDate.getDate())); ThangDuong.setText(String.valueOf(ToDate.getMonth()+1)); NamDuong.setText(String.valueOf(ToDate.getYear()+1900)); }; }; class Tcung extends Canvas implements StarConst { String name; String hanstr; int chi; int numsao; int sao[]=new int[100]; boolean tuan,triet; public void paint(Graphics g) { g.setColor(nguhanhcolor[nguhanhcung[chi]-2]); g.drawRect(4,4,192,152); g.drawRect(3,3,194,154); g.setColor(Color.blue); g.drawString(name,10,15); if (tuan && triet) g.drawString("Tua^`n Trie^.t",120,15); else { if (tuan) g.drawString("Tua^`n",150,15); if (triet) g.drawString("Trie^.t",150,15); }; int i=0; int x=6; String dstr[]={"","(H) ","(B) ","(D) ","(V) ","(M) "}; while (sao[i]<14) { g.setColor(nguhanhcolor[nguhanhsao[sao[i]]-2]); g.drawString(dstr[dialoi[sao[i]][chi]]+strsao[sao[i]],60,28+i*13); i++; }; int j=0; int max=0; for (i=0;i8) || (max>8)) max=8; int y=55; j=1; for (i=0;i>5); case 5: return ((tab[nam*2]&0x1E00)>>9); } start-=6; mask=0x0001<>start; } DuonglichQuaAmlich(int N,int T,int nam) { int maxday[]={0,31,29,31,30,31,30,31,31,30,31,30,31}; int C,TA,NA,P,S,I,U,W,V; if ((T>12)||(T<0)||(N<0)||(N>maxday[T])) valid=false; if ((T==2)&&(N==29)&&(nam%4!=0)) valid= false; C=ff(nam,1); TA=ff(nam,3); P=6; W=ff(nam,P); S=30-C+W; U=T; if (T>8) U=T+1; I=U / 2; if (T<=2) NA=31*I+N ; else { NA=30*T+I+N-32; if (nam % 4==0) NA++; } if (NA<=S) { NA=C+NA-1; nam--; } else { do { NA-=S; P++; TA++; W=ff(nam,P); S=29+W; } while (NA>S); if (TA<13) nam--; else { TA-=12; V=ff(nam,5); if ((V!=0) && (TA>V)) if ((TA>V+1) || (NA<=15)) TA--; } } chi=nam % 12; nam+=6; can=nam % 10; ngay=NA; thang=TA; }; int getngay() { return ngay; }; int getthang() { return thang; }; int getcan() { return can; }; int getchi() { return chi; }; };