Can any one explain me following Calender example what cal.roll(Calendar.DAY_OF_YEAR, true); will return and whats the use of that.
this is straight from Java specification about Calendar class::
roll public abstract void roll(int field,boolean up):: Adds or subtracts (up/down) a single unit of time on the given time field without changing larger fields. For example, to roll the current date up by one day, you can achieve it by calling:
When rolling on the year or Calendar.YEAR field, it will roll the year value in the range between 1 and the value returned by calling getMaximum(Calendar.YEAR). When rolling on the month or Calendar.MONTH field, other fields like date might conflict and, need to be changed. For instance, rolling the month on the date 01/31/96 will result in 02/29/96. When rolling on the hour-in-day or Calendar.HOUR_OF_DAY field, it will roll the hour value in the range between 0 and 23, which is zero-based.
why second println give IllegalArgumentException. System.out.println(new SimpleDateFormat("DD-MM-YYYY").format(cal.getTime()))