先贴出代码:
import java.util.*;
public class TestCalendar
{
public static void main(String []args)
{
Calendar cl = Calendar.getInstance();
int year = cl.get(Calendar.YEAR);
int month = cl.get(cl.MONTH)+1; //对于类中的静态常量,可以通过实例对象调用,也可以直接由类来调用
int day = cl.get(cl.DATE);
//int day = cl.get(cl.DAY_OF_MONTH);
int week = cl.get(cl.DAY_OF_WEEK)-1;
String []str = {"日","一","二","三","四","五","六"};
int hour = cl.get(cl.HOUR_OF_DAY);
int minute = cl.get(cl.MINUTE);
int second = cl.get(cl.SECOND);
System.out.println(year+"年"+month+"月"+day+"日 星期"+str[week]+" "+hour+":"+minute+":"+second);
cl.add(cl.DAY_OF_YEAR,316); //System.out.println(year+"年"+month+"月"+day+"日 星期"+str[week]+" "+hour+":"+minute+":"+second); int week2 = cl.get(cl.DAY_OF_WEEK)-1;
System.out.println(cl.get(Calendar.YEAR)+"年"+(cl.get(cl.MONTH)+1)+"月"+cl.get(cl.DATE)+"日 星期"+str[week2]+" "+cl.get(cl.HOUR_OF_DAY)+":"+cl.get(cl.MINUTE)+":"+cl.get(cl.SECOND));
}
}如果后面输出日期的语句按照注释掉的那句写,则日期根本没改变!为什么非得像下面那样写日期才是315天后的?这么说之前定义year等int型变量时它们的值就已经确定了??
import java.util.*;
public class TestCalendar
{
public static void main(String []args)
{
Calendar cl = Calendar.getInstance();
int year = cl.get(Calendar.YEAR);
int month = cl.get(cl.MONTH)+1; //对于类中的静态常量,可以通过实例对象调用,也可以直接由类来调用
int day = cl.get(cl.DATE);
//int day = cl.get(cl.DAY_OF_MONTH);
int week = cl.get(cl.DAY_OF_WEEK)-1;
String []str = {"日","一","二","三","四","五","六"};
int hour = cl.get(cl.HOUR_OF_DAY);
int minute = cl.get(cl.MINUTE);
int second = cl.get(cl.SECOND);
System.out.println(year+"年"+month+"月"+day+"日 星期"+str[week]+" "+hour+":"+minute+":"+second);
cl.add(cl.DAY_OF_YEAR,316); //System.out.println(year+"年"+month+"月"+day+"日 星期"+str[week]+" "+hour+":"+minute+":"+second); int week2 = cl.get(cl.DAY_OF_WEEK)-1;
System.out.println(cl.get(Calendar.YEAR)+"年"+(cl.get(cl.MONTH)+1)+"月"+cl.get(cl.DATE)+"日 星期"+str[week2]+" "+cl.get(cl.HOUR_OF_DAY)+":"+cl.get(cl.MINUTE)+":"+cl.get(cl.SECOND));
}
}如果后面输出日期的语句按照注释掉的那句写,则日期根本没改变!为什么非得像下面那样写日期才是315天后的?这么说之前定义year等int型变量时它们的值就已经确定了??
int y = x + 1;
x += 300;
System.out.println(x);
System.out.println(y);
int y = x + 1并不是数学公式。数学公式中代表了y永远比x大一。
而程序是指,计算当前x+1的结果,赋值给y。从此后,除非有其他指令在把他们关联起来,否则x和y之间没有关系
class ok{
public static void main(String[] args){
Calendar cl = Calendar.getInstance();
int year = cl.get(Calendar.YEAR);
int month = cl.get(cl.MONTH)+1; //对于类中的静态常量,可以通过实例对象调用,也可以直接由类来调用
int day = cl.get(cl.DATE);
//int day = cl.get(cl.DAY_OF_MONTH);
int week = cl.get(cl.DAY_OF_WEEK)-1;
String []str = {"日","一","二","三","四","五","六"};
int hour = cl.get(cl.HOUR_OF_DAY);
int minute = cl.get(cl.MINUTE);
int second = cl.get(cl.SECOND);
System.out.println(year+"年"+month+"月"+day+"日 星期"+str[week]+" "+hour+":"+minute+":"+second);
cl.add(cl.DAY_OF_YEAR,316);
month = cl.get(cl.MONTH)+1;
week=cl.get(cl.DAY_OF_WEEK)-1;
day = cl.get(cl.DATE);
System.out.println(year+"年"+month+"月"+day+"日 星期"+str[week]+" "+hour+":"+minute+":"+second);
}
}