JAVA Basic

JAVA Basic,java,calendar,Java,Calendar,我在写代码,有个新问题。 现在,即使我手动操作,这一年也不会改变 请在第一周看一下印刷品。 它应该改变,因为我已经改变了日历的年份。但是你得到的仍然是what u输入。请使用object.set(Calendar.YEAR,XXXX)帮助 套装课程; 导入java.text.DateFormatSymbols; 导入java.util.ArrayList; 导入java.util.Calendar; 导入java.util.GregorianCalendar; 导入java.util.Scann

我在写代码,有个新问题。 现在,即使我手动操作,这一年也不会改变

请在第一周看一下印刷品。 它应该改变,因为我已经改变了日历的年份。但是你得到的仍然是what u输入。请使用object.set(Calendar.YEAR,XXXX)帮助

套装课程;
导入java.text.DateFormatSymbols;
导入java.util.ArrayList;
导入java.util.Calendar;
导入java.util.GregorianCalendar;
导入java.util.Scanner;
公共课第四课{
专用静态扫描仪;
私有静态字符串[]天={“SUN”、“MON”、“TUE”、“WED”、“THU”、“FRI”、“SAT”};
私有静态int max;
静态整数计数器=0;
当前日期的静态int;
静态GregorianCalendar gcal=新的GregorianCalendar();
公共静态void main(字符串[]args){
max=gcal.getActualMaximum(Calendar.DAY/OF/u MONTH);//获取实际值
//最长工作日
//当月
gcal.set(gcal.get(Calendar.YEAR),0,1);//默认设置当前年份,
//一月在一月,一月在一月
//日期。
扫描仪=新扫描仪(System.in);
//////////获取输入并将其设置为“年”///////
系统输出打印(“输入年份:”;
int year=scanner.nextInt();//获取输入年份
gcal.set(Calendar.YEAR,YEAR);//set YEAR!
/////////将当前日期设置为1///////////////////
gcal.set(Calendar.DATE,1);//将默认日期设置为1。
currentDay=gcal.get(Calendar.DAY,OF,OF,OF,OF,OF,WEEK);//获取当前的星期几。
int max=gcal.getactualmax(Calendar.DAY/u/u MONTH);//获取
//实际最大值
//纪念日
//当月
printYear(year);//调用printYear方法3次输出year。
//对于(int m=0;m<12;m++){
monthCheck(0);//调用monthCheck方法,该方法将打印出第3个月
//时代。
printDay();
printFirstWeek();
gcal.set(Calendar.YEAR,1999);//看看这个,我是手动设置的
printFirstWeek();
gcal.set(Calendar.YEAR,1860);//看看这个,我是手动设置的
printFirstWeek();
System.out.println();
// }
}
//印刷年
静态无效打印年(整数y){
int dummyYear=y;
for(int yi=0;yi<3;yi++){
如果(yi==0){
System.out.printf(“%5d”,dummyYear);
}否则{
System.out.printf(“%31d”,dummyYear);
}
dummyYear++;
}
System.out.println();
}
//打印月份
静态void monthCheck(int m){
ArrayList MonthList=新建ArrayList();
String[]months=新的DateFormatSymbols().getMonths();
对于(int i=0;i对于(int-iDate=1;iDate
printFirstWeek
不取决于日历
gcal
,而是取决于
currentDay
max
,更改
gcal
不会更新这些字段

你需要像第一次那样重新分配它们

max = gcal.getActualMaximum(Calendar.DAY_OF_MONTH);
currentDay = gcal.get(Calendar.DAY_OF_WEEK);

printFirstWeek
甚至不使用日历,为什么您认为它会受到年份变化的影响?您是什么意思?
gcal
不被
printFirstWeek
使用,因此更改它对
printFirstWeek
没有任何影响,但您可以看到我手动更改了年份,以及printFirstWeek方法取决于它。对吗?嗯,以及如何使用它,正确的方法?我编辑了它,看到我在方法本身中使用了它。
max = gcal.getActualMaximum(Calendar.DAY_OF_MONTH);
currentDay = gcal.get(Calendar.DAY_OF_WEEK);