What is the Diffrence Between Calendar.DAY_OF_WEEK and Calendar.DAY_OF_MONTH even the output is same every time? : I'm Setting Time using Timestamp class with Current time i'm setting the time with the Calender class first by DAY_OF_WEEK and second with DAY_OF_MONTH there is getting same output every time then what is the diffrence between DAY_OF_MONTH and DAY_OF_WEEK
    
            Timestamp followUpDateBegins = new Timestamp(System.currentTimeMillis());
            		Calendar cal = Calendar.getInstance();
            		cal.setTime(followUpDateBegins);
            		cal.add(Calendar.DAY_OF_WEEK, -30);
            		cal.set(Calendar.HOUR, 0);
            		cal.set(Calendar.MINUTE, 0);
            		cal.set(Calendar.SECOND, 0);
            		cal.set(Calendar.MILLISECOND, 0);
            followUpDateBegins.setTime(cal.getTime().getTime());
            		System.out.println("followUpDateBegins      "+followUpDateBegins);
            
            
            
            
            OR
            
            
            Timestamp followUpDateBeginsSecond = new Timestamp(System.currentTimeMillis());
            		cal.setTime(followUpDateBeginsSecond);
            		cal.add(Calendar.DAY_OF_MONTH, -30);
            		cal.set(Calendar.HOUR, 0);
            		cal.set(Calendar.MINUTE, 0);
            		cal.set(Calendar.SECOND, 0);
            		cal.set(Calendar.MILLISECOND, 0);
            		followUpDateBeginsSecond.setTime(cal.getTime().getTime());
        System.out.println("followUpDateBegins"+followUpDateBeginsSecond);

