JLabel jLabel1 = new JLabel(); JTextField jTextField1 = new JTextField(); JLabel jLabel2 = new JLabel(); JTextField jTextField2 = new JTextField(); JButton jButton1 = new JButton();
//Get Applet information public String getAppletInfo() { return "Applet Information"; } //Get parameter info public String[][] getParameterInfo() { return null; } //Main method public static void main(String[] args) { CalendarV2 applet = new CalendarV2(); applet.isStandalone = true; Frame frame; frame = new Frame(); frame.setTitle("Applet Frame"); frame.add(applet, BorderLayout.CENTER); applet.init(); applet.start(); frame.setSize(400,320); Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); frame.setLocation((d.width - frame.getSize().width) / 2, (d.height - frame.getSize().height) / 2); frame.setVisible(true); } // Declare dataMember //********************
boolean isLeapYear,isEverPressBTn=false; int thisYear,EnterYear,EnterMonth; //*********************************************************************************** //Methods //*********************************************************************************** //-----计算该年天数--------------- public int checkYear(int Year){ if(Year%4==0&&Year%100!=0){ thisYear = 366; } if(Year%100==0&&Year%400==0){ thisYear = 366; } else if(Year%4!=0){ thisYear=365; } return thisYear; } //--------------------------------
//--------计算当月天数--------------- //要输入年份的原因是要判定二月29天还是28天 public int checkMonth(int Month ,int Year){ int Dates=0; if (Month <0Month>12){ System.out.println("Month Error"); } if(Month==1Month==3Month==5 Month==7Month==8Month==10 Month==12){ Dates=31; } if(Month==2&&this.checkLeapYear(Year)){ Dates=29; } if(Month==2&&!this.checkLeapYear(Year)){ Dates=28; } if(Month==4Month==6Month==9Month==11){ Dates=30; } return Dates; } //------------------------------------
//-----用递归法计算目标年到已知年的总天数--- public int counterYearDates(int EnterYear){ int sum1=0; if(EnterYear==2001){//2001年为已知年 sum1=0; //递归从此跳出 } if(EnterYear>2001){ sum1+=this.checkYear(EnterYear-1) +this.counterYearDates(EnterYear-1); } //当目标年大于2001年,则从目标年-1往前累加 //到2001年为止 if(EnterYear<2001){ sum1+=this.checkYear(EnterYear) +this.counterYearDates(EnterYear+1); } //当目标年小于2001年,则从目标年往后累加 //到2001年为止 return sum1; } //-----计算目标年从一月到目标月的总天数------------------------ //要输入年份的原因是要判定二月29天还是28天 public int counterMonthDates(int EnterMonth,int EnterYear){ int sum2=0; if(EnterMonth==1){ sum2=0; } if(EnterMonth>1&&EnterMonth<=12){ sum2+=this.checkMonth(EnterMonth-1,EnterYear) +this.counterMonthDates(EnterMonth-1,EnterYear); } else if(EnterMonth<0){ System.out.print("Month Error"); } return sum2; } //------------------------------------------------
//-------------用数组存目标月日期----------------------------- public int[] Array(int AllDates,int EnterMonth){ int n=AllDates%7; int a=1; int[] DayInTable=new int[38]; if(n<0)//Keep the n bigger than 0 n=7+n+1;//Line 207 haven′t add 1,so here add if(n!=0) for(int i=n;i<this.checkMonth(EnterMonth,EnterYear)+n;i++){ DayInTable[i]=a; a++; } else for(int i=7;i<this.checkMonth(EnterMonth,EnterYear)+7;i++){ //若n为0,则说明目标月一号为星期日 DayInTable[i]=a; a++; } return DayInTable; } //----------------------------------------------------------
//-----------打印输出------------------------------- public void printTable(int[]DayInTable){ System.out.println("Curren Date is: Year " +EnterYear+" Month "+EnterMonth); System.out.print("Mon Tue Wed Thur Fri Sat Sun "); System.out.println(); for(int i=1;i<=37;i++){ if(DayInTable[i]==0) System.out.print(" "); if(i%7==0&&DayInTable[i]!=0){ //防止在最后i=35时输出0 System.out.print(DayInTable[i]+" "); System.out.println(); } else if(DayInTable[i]>9) System.out.print(DayInTable[i]+" "); else if(DayInTable[i]!=0) //防止在最后i<9时输出0 System.out.print(DayInTable[i]+" "); if(i==37) System.out.println(); } } //-----------------------------------------------------
//---------------按钮触发事件--------------------- void jButton1_actionPerformed(ActionEvent e) { /* ***********refresh Datas****************** if(isEverPressBtn){ Dates=0;AllDates=0;sum1=0;sum2=0;thisYear=0; /*假如这几个变量在方法里声明,则不用刷新,请看CalendarV2*/ //} /******Left All Datas go back to 0****/