为什么???高手在哪里?????我想通过日期计算出对应星期几!import java.util.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;public class  Week implements ActionListener{
JFrame jf;
JTextField j1,j2,j3,j4;
JLabel jl1,jl2,jl3,jl4;
JButton jb;
String s;  Calendar c1;
static String[] weeks={"星期天","星期一","星期二","星期三","星期四","星期五","星期六"};
public void go(){
      jf=new JFrame("日期星期转换");
      jf.setLayout(new GridLayout(5,2));
        jl1=new JLabel("请输入年");
        j1=new JTextField(4);
        jl2=new JLabel("请输入月");
        j2=new JTextField(2); 
        jl3=new JLabel("日");
        j3=new JTextField(2);
        jl4=new JLabel("您输入的日期是:");
        j4=new JTextField(4);
jb=new JButton("运行");
jb.addActionListener(this);
          c1 =GregorianCalendar.getInstance(); 
          
        
            c1.set(Calendar.YEAR,Integer.parseInt(j1.getText()));  //问题应该就在这里,帮我看下,给出解答,谢谢!
            c1.set(Calendar.MONTH,Integer.parseInt(j2.getText())-1); //
            c1.set(Calendar.DATE,Integer.parseInt(j3.getText()));//
            jf.add(jl1);jf.add(j1);
            jf.add(jl2);jf.add(j2);
            jf.add(jl3);jf.add(j3);
            jf.add(jl4);jf.add(j4);
            jf.add(jb);
            jf.setSize(200,200);
            jf.setVisible(true);
      }
public void actionPerformed(ActionEvent e){
if(e.getSource()==jb)

s=getWeekName(c1);
j4.setText(s);
}

 public static String getWeekName(Calendar c){
        return weeks[c.get(Calendar.DAY_OF_WEEK)-1] ;
    }






public static void main(String args[]){

Week wkk=new Week();
wkk.go();
}


}

解决方案 »

  1.   

    package xml;import java.util.*;
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;public class  Week implements ActionListener{
        JFrame jf;
        JTextField j1,j2,j3,j4;
        JLabel jl1,jl2,jl3,jl4;
        JButton jb;
        String s;
        Calendar c1;
        static String[] weeks={"星期天","星期一","星期二","星期三","星期四","星期五","星期六"};
        public void go(){
          jf=new JFrame("日期星期转换");
          jf.setLayout(new GridLayout(5,2));
            jl1=new JLabel("请输入年");
            j1=new JTextField(4);
            jl2=new JLabel("请输入月");
            j2=new JTextField(2); 
            jl3=new JLabel("日");
            j3=new JTextField(2);
            jl4=new JLabel("您输入的日期是:");
            j4=new JTextField(4);
            jb=new JButton("运行");
            jb.addActionListener(this);
            c1 =GregorianCalendar.getInstance(); 
                jf.add(jl1);jf.add(j1);
                jf.add(jl2);jf.add(j2);
                jf.add(jl3);jf.add(j3);
                jf.add(jl4);jf.add(j4);
                jf.add(jb);
                jf.setSize(200,200);
                jf.setVisible(true);
          }
        public void actionPerformed(ActionEvent e){
            if(e.getSource()==jb)
            System.out.print(j1.getText()+" "+j2.getText()+" "+j3.getText());
            c1.set(Calendar.YEAR,Integer.parseInt(j1.getText()));  //问题应该就在这里,帮我看下,给出解答,谢谢!
            c1.set(Calendar.MONTH,Integer.parseInt(j2.getText())-1); //
            c1.set(Calendar.DATE,Integer.parseInt(j3.getText()));//
            s=getWeekName(c1);
            j4.setText(s);
        }
        
         public static String getWeekName(Calendar c){
            return weeks[c.get(Calendar.DAY_OF_WEEK)-1] ;
        }
        
        
        
        
            
        
        public static void main(String args[]){
            
            Week wkk=new Week();
            wkk.go();
        }
        
        
    }
      

  2.   

    c1.set(Calendar.YEAR,Integer.parseInt(j1.getText()));  //问题应该就在这里,帮我看下,给出解答,谢谢! 
      c1.set(Calendar.MONTH,Integer.parseInt(j2.getText())-1); // 
       c1.set(Calendar.DATE,Integer.parseInt(j3.getText()));// 
    移到actionPerformed方法内面
      

  3.   

    你从主函数分析,你一开始就调用go方法,当时的text内面的内容还是""(当时你还没输入任何内容),""不是数字字符串转换就会异常,所以放在你的actionPerformed,你按button才转化.
      

  4.   

    switch (Calendar.getInstance().get(Calendar.DAY_OF_WEEK)) {
    case Calendar.MONDAY:    weeks = "星期一"; break;
    case Calendar.TUESDAY:   weeks = "星期二"; break;
    case Calendar.WEDNESDAY: weeks = "星期三"; break;
    case Calendar.THURSDAY:  weeks = "星期四"; break;
    case Calendar.FRIDAY:    weeks = "星期五"; break;
    case Calendar.SATURDAY:  weeks = "星期六"; break;
    case Calendar.SUNDAY:    weeks = "星期日"; break;
    }