Have a look at the Calendar interface (and the Gregorian Calendar implementation). It contains a method called getActualMaximum() that returns the maximim value a field can be. That should get you started.
Have a look at the Calendar class again, specifically the get field. And look at the available constants defined in the Calendar class. There are MONDAY, TUESDAY etc. constants you can use. The Calendar won't in itself return a label for the day - since this is a lot of overhead (it would need to internalionalize the response). But you can write a quick bit of conditional code to return the label based on the value the Calendar provides.
Well, you could go down the route demonstrated in that page (its a useful read regardless, since it highlights some of the computation that needs done to work out dates). However, why do that when Java gives you the GregorianCalendar class that encapsulates all this functionality?