本帖最后由 yanghongming 于 2011-06-04 18:50:15 编辑

解决方案 »

  1.   

    (cl.get(Calendar.MONTH)+1)
    这个外面不加括号,中间的+就是字符串连接符,所以得到的结果是 2011年51月的日历表:
    把年去了,中间的+就是算数运算符,所以得到结果是 2017月的日历表:
      

  2.   

    get(calendar.YEAR)的类型是int型,你写在括号里面是按照int类型的计算的,没有括号就表示你是字符串的加减所以就是这样的结果.
      

  3.   

    (cl.get(Calendar.MONTH)+1)
    这个最外面我不加括号
    得到结果是 2011年51月的日历表:
    这是因为没有括号的话,根据从左到右运算法则,在第一个加号运算2011+“年”的时候,结果会自动转化成字符串,后面的+号运算,程序会当成字符串处理,如果你加了括号,会先进行括号运算,当成数字5+1=6处理,结果为6。我把"年去了
    得到结果是 2017月的日历表:
    你把“年”去了,变成
    System.out.println(cl.get(Calendar.YEAR) + (cl.get(Calendar.MONTH)+1)+ "月" + "的日历表:");
    根据运算法则,先算括号(cl.get(Calendar.MONTH)+1)=6,再根据从左到右运算,由于前面没有字符窜,所以当成数字运算,2011+6=2017,再算第二个+号,+“月”,此时由于“月”是字符串,此时会将数字变成字符串