java中calendar确定星期几的问题

/*
*用输入对话框接收自己生日(年 月 日)
*然后在用提示对话框弹出显示出生那天是星期几
*/
import javax.swing.JOptionPane;
import java.util.Calendar;
public class Text3{
public static void main(String[] args){
String input1 = JOptionPane.showInputDialog(null,"请输入你出生的年份");
String input2 = JOptionPane.showInputDialog(null,"请输入你出生的月份");
String input3 = JOptionPane.showInputDialog(null,"请输入你出生的日期");

int year1 = new Integer(input1);
Calendar cal1 = Calendar.getInstance();
int year2=Calendar.YEAR;
int nowYear=cal1.get(year2);
cal1.set(Calendar.YEAR,year1);
nowYear=cal1.get(Calendar.YEAR);

int month1 = new Integer(input2);
Calendar cal2 = Calendar.getInstance();
int month2=Calendar.MONTH;
int nowMonth=cal2.get(month2);
cal2.set(Calendar.MONTH,month1);
nowMonth=cal2.get(Calendar.MONTH);

int day1 = new Integer(input3);
Calendar cal3 = Calendar.getInstance();
int day2=Calendar.DATE;
int nowDay=cal2.get(day2);
cal3.set(Calendar.DATE,day1);
nowDay=cal3.get(Calendar.DATE);

Calendar cal = Calendar.getInstance();
int dayOfWeek = Calendar.DAY_OF_WEEK;
int nowDayOfWeek = cal.get(dayOfWeek);
System.out.println(nowDayOfWeek);
}
}
麻烦高手指点啊,前面的后面的怎么结合起来
----------------------------------------------------------------------------------------------
现在改成了
int year = new Integer(input1);
int month = new Integer(input2);
int day = new Integer(input3);
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR,year);
cal.set(Calendar.MONTH,month);
cal.set(Calendar.DATE,day);
int nowDayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
if(nowDayOfWeek>4){
int i=nowDayOfWeek-4;
JOptionPane.showMessageDialog(null,"你出生的那天是星期"+i);
}else if(nowDayOfWeek==4){
JOptionPane.showMessageDialog(null,"你出生的那天是星期天");
}else{
int i=nowDayOfWeek+3;
JOptionPane.showMessageDialog(null,"你出生的那天是星期"+i);
}
}
}
但是假设日期是4月31号的时候,它也显示是星期3,4月30号以前的就都不准确了

这里有三个有关的类。第一个 date类,第二个 calendar
类,第三个 dateformat类。date类创建的时间的用一个很大的毫秒数来表示的。即从1970年1月1日到你初始化的日期所走过的毫秒数。而这个数的范围现在已经出现危机了,好像是到2020年就超范围了。 date
类可以单独的设日期,设时间。calendar
类可以从一个date类实例创建一个日历对象,日历简单说就是能够将一个整数通过计算转化成某年某月某日的,而不用我们去考虑哪一年少一天多一天这样的复杂情况。 所以你更改了date对象的日期日间后,再用它创建日历对象即可,同时,日历对象是共享对象类(通过getinstance()静态函数获得的唯一对象,不存在多个实例。)
dateformate类则是将获得的年月日用一个格式表示出来。不存在修改日期值的方法。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-05-05
你先把时间设为出生的日期
比如cal1.set(Calendar.YEAR,year);
cal1.set(Calendar.MOTH,moth);
cal1.set(Calendar.DATE,date);
然后用get
int i=cal1.get(Calendar.DAY_OF_WEEK);
i就是你要求的值..对了,注意要加一本回答被提问者采纳
相似回答