code: public void setDay(int d) {
  		if (d < 1) {
  			d = 1;
  		}
  		Calendar tmpCalendar = (Calendar) calendar.clone();
  		tmpCalendar.set(Calendar.DAY_OF_MONTH, 1);
  		tmpCalendar.add(Calendar.MONTH, 1);
  		tmpCalendar.add(Calendar.DATE, -1);
  
  		int maxDaysInMonth = tmpCalendar.get(Calendar.DATE);
  
  		if (d > maxDaysInMonth) {
  			d = maxDaysInMonth;
  		}
  
  		int oldDay = day;
  		day = d;
  
  		if (selectedDay != null) {
  			selectedDay.setBackground(oldDayBackgroundColor);
  			selectedDay.repaint();
  		}
  
  		for (int i = 7; i < 49; i++) {
  			if (days[i].getText().equals(Integer.toString(day))) {
  				selectedDay = days[i];
  				selectedDay.setBackground(selectedColor);
  				break;
  			}
  		}
  
  		if (alwaysFireDayProperty) {
  			firePropertyChange("day", 0, day);
  		} else {
  			firePropertyChange("day", oldDay, day);
  		}
  	}
docs: Sets the day. This is a bound property.
  
  @param d
  the day
  
  @see #getDay