在Calendar中,在java中添加减法

时间:2014-08-25 07:01:59

标签: java

我试图从日历中减去60天。示例代码

   try {


        cal.set(2014,02,12);  //year,month,date
        cal.add(Calendar.DATE, -60);

        System.out.println("Year = " + cal.get(Calendar.YEAR));
        System.out.println("Month = " + (cal.get(Calendar.MONTH)));
        System.out.println("Day = " + cal.get(Calendar.DAY_OF_MONTH));
    } 
    catch (Exception e) {
        e.printStackTrace();
    }

输出

Year = 2014
Month = 0
Day = 11

如果日期是

cal.set(2014,01,12);  //year,month,date

输出很好:

Year = 2013
Month = 11
Day = 14

如何解决此问题?

1 个答案:

答案 0 :(得分:3)

你得到1月份没有什么不对,months start from 0

  

月 - 用于设置MONTH日历字段的值。月值基于0。例如,1月份为0。

所以你得到的是2014年1月11日

修改: -

基于下面的评论是月份代表:

  • 1月:0
  • 二月:1
  • March:2
  • 四月:3
  • May:4
  • 六月:5
  • 7月:6
  • 八月:7
  • 九月:8
  • 10月:9
  • 11月:10
  • 12月:11

因此,您的日期2014年 02 ,12实际上代表12- 3月 -2014,当您从中删除60天后,它将带您到1月,所以这一年不会改变。