import java.awt.*; import java.applet.Applet; import java.util.*; import java.awt.event.*; public class ycalendar extends Applet implements ItemListener { Choice gen, nen; int y0, y, m, m0, d0,dx, dy; String wk[] = new String[7]; String ek[] = new String[10]; String tk[] = new String[12]; int mdays[] = new int[13]; int ge=1988; boolean f0 = false, f1 = false, f2=false;////add f2 Image day[] = new Image[4]; int sei, har, aki, tai, umi, kei, kok; public void init(){ dx = getSize().width; dy = getSize().height; int i,j; for(i=0;i<4;i++) day[i]=getImage(getCodeBase(),"d"+i+".gif"); setLayout(null); Calendar dd=Calendar.getInstance(TimeZone.getTimeZone("JST")); y=dd.get(dd.YEAR); m=m0=dd.get(dd.MONTH)+1; d0=dd.get(dd.DATE); ek[0]="b";ek[1]="‰ณ";ek[2]="•ธ";ek[3]="’š"; ek[4]="•่";ek[5]="Œศ";ek[6]="M";ek[7]="h"; ek[8]="p";ek[9]="แก"; tk[0]="Žq";tk[1]="‰N";tk[2]="“ะ";tk[3]="‰K";tk[4]="’C"; tk[5]="–ค";tk[6]="Œ฿";tk[7]="–ข";tk[8]="\";tk[9]="“ั"; tk[10]="œ๚";tk[11]="ˆๅ"; gen =new Choice(); // †-choice gen.addItem("•ฝฌ"); gen.addItem("บ˜a"); gen.addItem("‘ๅณ"); gen.addItem("–พŽก"); gen.setBounds(0,0,50,16); add(gen); gen.addItemListener(this); nen =new Choice(); // ”N-choice int t=y-1988; for(i=0;i<64;i++){ j=t+i; if(j>64) j=j-64; nen.addItem(""+j); } nen.setBounds(50,0,50,16); nen.addItem(Integer.toString(y-1988)); add(nen); nen.addItemListener(this); wk[0] = "“๚"; wk[1] = "ŒŽ"; wk[2] = "‰ฮ"; wk[3] = "…"; wk[4] = "–ุ"; wk[5] = "‹เ"; wk[6] = "“y"; } public void paint(Graphics g) { int i=0; int ye=(y+6)%10; int yt=(y+8)%12; g.setColor(new Color(255,255,255)); g.fillRect(0,0,dx,dy); g.setColor(Color.white); g.fillRect(101,2,17,15); g.setColor(Color.black); g.drawString("”N",104,14); g.setColor(Color.black); g.drawString(ek[ye]+" "+tk[yt] +"@@@iผ—๏ "+Integer.toString(y)+"”Nj",150,15); g.drawString("prg. by K.Shindo",400,15); for(i=1;i<=12;i++){ int tx=((i-1)%3)*172; int ty=((i-1)/3)*112+32; g.setColor(Color.black); g.drawString(Integer.toString(i)+"ŒŽ",tx+6,ty); g.setColor(Color.gray); for(int l=0;l<=6;l++) g.drawLine(tx+2,ty+3+l*16,tx+2+167,ty+3+l*16); for(int c=0;c<=7;c++) g.drawLine(tx+2+c*24,ty+3,tx+2+c*24,ty+3+96); for(int w=0;w<7;w++){ if(w==0) g.setColor(Color.red); if(w>0 && w<6) g.setColor(Color.black); if(w==6) g.setColor(Color.blue); g.drawString(wk[w],tx+w*24+8,ty+17); } int q=(int)julius(y, i, 1)%7; date(g, q, i); } coment(g); kok=0; } public void coment(Graphics g){ int i=0; String S[]=new String[17]; g.setColor(Color.red); if(y>1947){S[i]="( 1/ 1) Œณ’U";i++;/* New Year's Day*/} else{S[i]="( 1/ 1) Žl•๛”q";i++;} if(y<1947){S[i]="( 1/ 3) ŒณŽnี";i++;} if(y<1947){S[i]="( 1/ 5) V”N‰ƒ‰๏";i++;} if(y>1947){S[i]="( 1/"+sei+") ฌl‚ฬ“๚";i++; /* Coming of Age Day*/} if(y>1965){S[i]="( 2/11) Œš‘‹L”O";i++; /* National Foundation Day*/} else{S[i]="( 2/11) ‹IŒณ฿";i++;} if(y==1989){S[i]="( 2/24) บ˜a“Vc‘ๅ‘r—็";i++;} if(y>1947){S[i]="( 3/"+har+") t•ช‚ฬ“๚";i++; /* Vernal Equinox Day*/} else{S[i]="( 3/"+har+") t‹Gc—์ี";i++;} if(y==1959){S[i]="( 4/10) c‘พŽqŒ‹ฅ";i++;} if(y<1948){S[i]="( 4/3) _•“Vcี";i++;} if(y>1988){S[i]="( 4/29) บ˜a‚ฬ“๚";i++;} if(y>1947 && y<1989){S[i]="( 4/29) “Vc’aถ";i++;} if(y<1948 && y>1926){S[i]="( 4/29) “V’ท฿";i++; /* Greener Day*/} if(y>1947){S[i]="( 5/ 3) Œ›–@‹L”O";i++; /* Constitution Memorial Day*/} if(y>1984){S[i]="( 5/ 4) —ฮ‚ฬ“๚";i++; /* national holiday*/} if(y>1947){S[i]="( 5/ 5) Žq‹Ÿ‚ฬ“๚";i++; /* Children's Day*/} if(y==1993){S[i]="( 6/ 9) c‘พŽqŒ‹ฅ‹V";i++; /* Children's Day*/} if(y>1994){ if(y<2003){ S[i]="( 7/20) ŠC‚ฬ“๚";i++; // Marine Day S[i]="( 9/15) Œh˜V‚ฬ“๚";i++; // Respect for the Aged Day }else{ S[i]="( 7/"+umi+") ŠC‚ฬ“๚";i++; S[i]="( 9/"+kei+") Œh˜V‚ฬ“๚";i++; } } if(kok != 0){S[i]="( 9/"+kok+") ‘–ฏ‹x“๚";i++; /* national holiday*/} if(y>1947){S[i]="( 9/"+aki+") H•ช‚ฬ“๚";i++; /* Autumnal Equinox Day*/} else{S[i]="( 9/"+aki+") H‹Gc—์ี";i++;} if(y>1965){S[i]="(10/"+tai+") ‘ฬˆ็‚ฬ“๚";i++; /* Health and Sports Day*/} if(y<1948){S[i]="(10/17) _ฆี";i++;} if(y>1947){S[i]="(11/ 3) •ถ‰ป‚ฬ“๚"; i++; /* National Culture Day*/} if(y>1926 && y<1948){S[i]="(11/ 3) –พŽก฿";i++;} if(y==1990){S[i]="(11/12) ‘ฆˆส—็ณ“a‹V";i++;} if(y>1947){S[i]="(11/23) ‹ฮ˜JŠดŽำ";i++; /* Laber Thanksgiving*/} else{S[i]="(11/23) Vฆี";i++;} if(y>1988){S[i]="(12/23) “Vc’aถ";i++; /* The Emperor's Birthday*/} if(y>1927 && y<1947){S[i]="(12/25) ‘ๅณ“Vcี";i++;} int t=i; for(i=0;i1947 && y<2000){ if(m==1 && d==15) h=1; if(m==10 && d==10) h=1; } if(m==1 && d==1) h=1; if(m==1 && d==3 && y<1948) h=1; if(m==1 && d==5 && y<1948) h=1; if(m==2 && d==11) h=1; if(m==2 && d==12 && y==1990) h=1; if(m==2 && d==24 && y==1989) h=1; if(m==3)if(equinox(m)==d) h=1; if(m==4 && d==3 && y<1948) h=1; if(m==4 && d==10 && y==1959) h=1; if(m==4 && d==29 && y>1925) h=1; if(m==5 && d==3 && y>1947) h=1; if(m==5 && d==4 && y>1947) h=1; if(m==5 && d==5 && y>1947) h=1; if(m==6 && d==9 && y==1993) h=1; if(y<2003){ if(m==7 && d==20 && y>1994 && y<2003) h=1; if(m==9 && d==15 && y>1994 && y<2003) h=1; } if(m==9)if(equinox(m)==d) h=1; if(m==10 && d==17 && y<1948) h=1; if(m==11 && d==3 && y>1926) h=1; if(m==11 && d==23) h=1; if(m==12 && d==23 && y>1988) h=1; if(m==12 && d==25 && y>1927 && y<1947) h=1; return h; } private void date(Graphics g,int q,int m){ g.setColor(Color.black); int dd=days(m); int id=0; for(int i=0;i<=36;i++){ int d=i-q+1; int p=7; if(d>days(m)) break; if(d<10)p=14; if(d>0 && d<=dd){ if(i%7==0)g.setColor(Color.red); if(i%7>0 && i%7<6)g.setColor(Color.black); if(i%7==6)g.setColor(Color.blue); int h = holiday(m,d); if(h==1)g.setColor(Color.red); if(m==1 && d==15 && y>1947 && y<2000){ g.setColor(Color.red); sei=15; } if(m==1 && i%7==1 && d>7 && d<15 && y>1999){ g.setColor(Color.red); sei=d; } if(m==7 && d==20 && y>1995 && y<2003){ g.setColor(Color.red); umi=d; } if(m==7 && i%7==1 && d>14 && d<22 && y>2002){ g.setColor(Color.red); umi=d; } if(m==9 && d==15 && y>1995 && y<2003){ g.setColor(Color.red); kei=d; } if(m==9 && i%7==1 && d>14 && d<22 && y>2002){ g.setColor(Color.red); kei=d; } if(m==9 && i%7==2 && d>15 && d<23 && kei+2==aki && y>2002){ g.setColor(Color.red); kok=d; } if(m==10 && d==10 && y>1965 && y<2000){ g.setColor(Color.red); tai=10; } if(m==10 && i%7==1 && d>7 && d<15 && y>1999){ g.setColor(Color.red); tai=d; } if(y>1972){ if(h==1 && i%7==0){ f0=true; id=i+1; } } if(i%7==0 && m==5 && (d==3 || d==4 ||d==5) && y>2007) f2=true;////add if(f2 && m==5 && d==6){ //// g.setColor(Color.red); //// f2=false; //// }///////////////////////////////////////////////////////////////// if(f0 && i==id){ g.setColor(Color.red); f0=false; id=0; } if(i<35) g.drawString(""+d,(i%7)*24+(m-1)%3*172+p,64+(m-1)/3*112+i/7*16); if(!f1 && m==m0 && d==d0){ g.setColor(Color.green); g.drawRect((i%7)*24+(m-1)%3*172+3,64+(m-1)/3*112+i/7*16-12,22,15); g.drawRect((i%7)*24+(m-1)%3*172+4,64+(m-1)/3*112+i/7*16-12,20,14); } } if(i>=35){ if(d==30 && i==35) g.drawImage(day[0],(i%7)*24+(m-1)%3*172+p,64+(m-1)/3*112+52,this); if(d==31 && i==36) if(holiday(m,23)==1) g.drawImage(day[3],(i%7)*24+(m-1)%3*172+p,64+(m-1)/3*112+52,this); else g.drawImage(day[1],(i%7)*24+(m-1)%3*172+p,64+(m-1)/3*112+52,this); if(d==31 && i==35) g.drawImage(day[2],(i%7)*24+(m-1)%3*172+p,64+(m-1)/3*112+52,this); } } } private long julius(int y,int m,int d){ int i,day=0; long ly,q; for(i=0;i