Java tutorial
import java.util.Calendar; import java.util.Date; public class Util { public static Date getSunday(Date today) { Calendar cal = Calendar.getInstance(); cal.setTime(today); int dow = cal.get(Calendar.DAY_OF_WEEK); while (dow != Calendar.SUNDAY) { int date = cal.get(Calendar.DATE); int month = cal.get(Calendar.MONTH); int year = cal.get(Calendar.YEAR); if (date == getMonthLastDate(month, year)) { if (month == Calendar.DECEMBER) { month = Calendar.JANUARY; cal.set(Calendar.YEAR, year + 1); } else { month++; } cal.set(Calendar.MONTH, month); date = 1; } else { date++; } cal.set(Calendar.DATE, date); dow = cal.get(Calendar.DAY_OF_WEEK); } return cal.getTime(); } private static int getMonthLastDate(int month, int year) { switch (month) { case Calendar.JANUARY: case Calendar.MARCH: case Calendar.MAY: case Calendar.JULY: case Calendar.AUGUST: case Calendar.OCTOBER: case Calendar.DECEMBER: return 31; case Calendar.APRIL: case Calendar.JUNE: case Calendar.SEPTEMBER: case Calendar.NOVEMBER: return 30; default: // Calendar.FEBRUARY return year % 4 == 0 ? 29 : 28; } } }