If we add 1 month in current date(Fri May 31 18:33:00 IST 2013) it yields:

**Sun Jun 30 18:33:00 IST 2013**

If we subtract 1 month it yields:

**Thu May 30 18:33:00 IST 2013**

Is it a bug OR can anyone provide the reasoning?

Please find the code for same:

```
Calendar c1 = Calendar.getInstance()
System.out.println(c1.getTime());
c1.add(Calendar.MONTH, 1);
System.out.println(c1.getTime());
c1.add(Calendar.MONTH, -1);
System.out.println(c1.getTime());

```

Output

```
Fri May 31 18:33:00 IST 2013
Sun Jun 30 18:33:00 IST 2013
Thu May 30 18:33:00 IST 2013

```