Here you can find the source of getFirstDayOfLastWeek(Date date)
public static Date getFirstDayOfLastWeek(Date date)
//package com.java2s; //License from project: Apache License import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; public class Main { public static final int SECOND = 1; public static final int MINUTE = 2; public static Date getFirstDayOfLastWeek(Date date) { Calendar c = Calendar.getInstance(); c.setTimeInMillis(date.getTime() - 604800000L); c.set(Calendar.HOUR_OF_DAY, 0); c.set(Calendar.MINUTE, 0); c.set(Calendar.SECOND, 0); Date lastWeekDate = c.getTime(); c = new GregorianCalendar(); c.setFirstDayOfWeek(Calendar.MONDAY); c.setTime(new Date(lastWeekDate.getTime())); c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek()); // Monday return c.getTime(); }//from w w w . j a v a 2s . c om public static Date getFirstDayOfWeek(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return getADayOfWeek(calendar, Calendar.MONDAY).getTime(); } private static Calendar getADayOfWeek(Calendar day, int dayOfWeek) { int week = day.get(Calendar.DAY_OF_WEEK); if (week == dayOfWeek) return day; int diffDay = dayOfWeek - week; if (week == Calendar.SUNDAY) { diffDay -= 7; } else if (dayOfWeek == Calendar.SUNDAY) { diffDay += 7; } day.add(Calendar.DATE, diffDay); return day; } }