Here you can find the source of getWeekEnd(Timestamp stamp, TimeZone timeZone, Locale locale)
public static Timestamp getWeekEnd(Timestamp stamp, TimeZone timeZone, Locale locale)
//package com.java2s; /******************************************************************************* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you 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.//from w ww . j ava 2 s. c o m *******************************************************************************/ import java.sql.Timestamp; import java.util.Calendar; import java.util.Date; import java.util.Locale; import java.util.TimeZone; public class Main { public static java.sql.Timestamp getWeekEnd(java.sql.Timestamp stamp) { return getWeekEnd(stamp, TimeZone.getDefault(), Locale.getDefault()); } public static Timestamp getWeekEnd(Timestamp stamp, TimeZone timeZone, Locale locale) { Timestamp weekStart = getWeekStart(stamp, timeZone, locale); Calendar tempCal = toCalendar(weekStart, timeZone, locale); tempCal.add(Calendar.DAY_OF_MONTH, 6); return getDayEnd(new Timestamp(tempCal.getTimeInMillis()), timeZone, locale); } /** * Return the date for the first day of the week * * @param stamp * @return java.sql.Timestamp */ public static java.sql.Timestamp getWeekStart(java.sql.Timestamp stamp) { return getWeekStart(stamp, 0, 0); } public static java.sql.Timestamp getWeekStart(java.sql.Timestamp stamp, int daysLater) { return getWeekStart(stamp, daysLater, 0); } public static java.sql.Timestamp getWeekStart(java.sql.Timestamp stamp, int daysLater, int weeksLater) { return getWeekStart(stamp, daysLater, weeksLater, TimeZone.getDefault(), Locale.getDefault()); } public static Timestamp getWeekStart(Timestamp stamp, TimeZone timeZone, Locale locale) { return getWeekStart(stamp, 0, 0, timeZone, locale); } public static Timestamp getWeekStart(Timestamp stamp, int daysLater, TimeZone timeZone, Locale locale) { return getWeekStart(stamp, daysLater, 0, timeZone, locale); } public static Timestamp getWeekStart(Timestamp stamp, int daysLater, int weeksLater, TimeZone timeZone, Locale locale) { Calendar tempCal = toCalendar(stamp, timeZone, locale); tempCal.set(tempCal.get(Calendar.YEAR), tempCal.get(Calendar.MONTH), tempCal.get(Calendar.DAY_OF_MONTH), 0, 0, 0); tempCal.add(Calendar.DAY_OF_MONTH, daysLater); tempCal.set(Calendar.DAY_OF_WEEK, tempCal.getFirstDayOfWeek()); tempCal.add(Calendar.WEEK_OF_MONTH, weeksLater); Timestamp retStamp = new Timestamp(tempCal.getTimeInMillis()); retStamp.setNanos(0); return retStamp; } public static java.util.Calendar toCalendar(java.sql.Timestamp stamp) { Calendar cal = Calendar.getInstance(); if (stamp != null) { cal.setTimeInMillis(stamp.getTime()); } return cal; } /** * Returns a Calendar object initialized to the specified date/time, time zone, * and locale. * * @param date date/time to use * @param timeZone * @param locale * @return Calendar object * @see java.util.Calendar */ public static Calendar toCalendar(Date date, TimeZone timeZone, Locale locale) { Calendar cal = Calendar.getInstance(timeZone, locale); if (date != null) { cal.setTime(date); } return cal; } public static java.sql.Timestamp getDayEnd(java.sql.Timestamp stamp) { return getDayEnd(stamp, Long.valueOf(0)); } public static java.sql.Timestamp getDayEnd(java.sql.Timestamp stamp, Long daysLater) { return getDayEnd(stamp, daysLater, TimeZone.getDefault(), Locale.getDefault()); } public static Timestamp getDayEnd(Timestamp stamp, TimeZone timeZone, Locale locale) { return getDayEnd(stamp, Long.valueOf(0), timeZone, locale); } public static Timestamp getDayEnd(Timestamp stamp, Long daysLater, TimeZone timeZone, Locale locale) { Calendar tempCal = toCalendar(stamp, timeZone, locale); tempCal.set(tempCal.get(Calendar.YEAR), tempCal.get(Calendar.MONTH), tempCal.get(Calendar.DAY_OF_MONTH), 23, 59, 59); tempCal.add(Calendar.DAY_OF_MONTH, daysLater.intValue()); Timestamp retStamp = new Timestamp(tempCal.getTimeInMillis()); retStamp.setNanos(999999999); return retStamp; } }