Here you can find the source of getFirstDayOfLastWeek(Date date)
public static Date getFirstDayOfLastWeek(Date date)
//package com.java2s; /*/*www. j ava2 s . c om*/ * Copyright (c) 2015 Power Group. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * * http://www.apache.org/licenses/LICENSE-2.0 * * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ import java.util.*; 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(); } 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; } }