Я рекомендую использовать блестящую библиотеку Joda-Time для всех ваших потребностей синхронизации (которую я также рекомендую сделать стандартным импортом во всех ваших проектах).
При этом (не очень чистое, но работающее) решение будет таким:
public String getFirstDayOfWeekAndMonth(int year, int month, int week) {
DateTime firstDayOfMonth = new DateTime(year, month, 1, 0, 0, 0, 1);
DateTime lastDayOfMonth = new DateTime(year, month, firstDayOfMonth.dayOfMonth().getMaximumValueOverall(), 0, 0, 0, 1);
// european style (MON - SUN)
DateTime firstOfWeek = new DateTime(year, 1, 1, 0, 0, 0, 1).plusWeeks(week - 1).withDayOfWeek(1);
DateTime lastOfWeek = firstOfWeek.withDayOfWeek(7);
int firstDay;
int lastDay;
if(firstOfWeek.isBefore(firstDayOfMonth))
firstDay = firstDayOfMonth.getDayOfMonth();
else
firstDay = firstOfWeek.getDayOfMonth();
if(lastOfWeek.isAfter(lastDayOfMonth))
lastDay = lastDayOfMonth.getDayOfMonth();
else
lastDay = lastOfWeek.getDayOfMonth();
String returner = String.format("%d - %d", firstDay, lastDay);
return returner;
}
Я не совсем понимаю, почему вы хотите вернуть String из вашего метода, но я думаю, у вас есть причина. Я только что принял формат, вы можете изменить его, если хотите.