The only major change I would suggest is try to encapsulate more of the functionality in methods. For instance, you could create a method that checks to make sure the date is valid, and then call it from the main method. That will make the whole thing easier to edit and maintain.
Also, not to tout my own idea, but I think you can see the advantage of having the number of days in the month put into an array when you determine dayNumber. For example, with an array, you could do this:
Code:
int daysInMonths[] = { 31, 28, 31, . . ., 31};
.
.
.
int dayNumber = dayOfMonth;
for(int i = 0; i < month, i++){
dayNumber = dayNumber + daysInMonths[i];
}
That would replace your whole switch statement that finds the same thing. Of course you'd need to take into account leap years, but you had to do that anyway.