Java Calendar Week setStartOfWeek(Calendar date)

Here you can find the source of setStartOfWeek(Calendar date)

Description

Sets the date to the begin of the week.

License

Open Source License

Declaration

public static void setStartOfWeek(Calendar date) 

Method Source Code

//package com.java2s;
/*//from  w ww . ja v  a 2s .co  m
 * Copyright (C) 2002-2006 Stefan Stiller
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

import java.util.Date;
import java.util.Calendar;

public class Main {
    public final static long SECOND = 1000;
    public final static long MINUTE = 60 * SECOND;
    private static int firstDayOfWeek = Calendar.MONDAY;

    /**
     * Sets the date to the begin of the week.
     */
    public static void setStartOfWeek(Calendar date) {
        date.add(Calendar.DATE, -getDayOfWeek(date));
        date.set(Calendar.HOUR_OF_DAY, 0);
        date.set(Calendar.MINUTE, 0);
        date.set(Calendar.SECOND, 0);
        date.set(Calendar.MILLISECOND, 0);
    }

    public static Date add(Date date, int field, int value) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(field, value);
        return calendar.getTime();
    }

    /**
     * Returns the day of week depending if the week starts on sunday or monday.
     *
     * @return 0 for the first day of the week and 6 for the last.
     */
    public static int getDayOfWeek(Calendar date) {
        int day = date.get(Calendar.DAY_OF_WEEK);
        if (getFirstDayOfWeek() == Calendar.SUNDAY)
            return day - 1;
        else {
            if (day >= Calendar.MONDAY)
                return day - Calendar.MONDAY;
            else
                return 6;
        }
    }

    public static int getFirstDayOfWeek() {
        return firstDayOfWeek;
    }
}

Related

  1. isWeekEnd(Calendar c)
  2. isWeekend(Calendar cal)
  3. isWeekend(GregorianCalendar date)
  4. lastDayOfWeek(Calendar cal)
  5. lastDayOfWeek(Calendar calendar)
  6. setTimeAsFirstDayOfWeek(Calendar calendar)
  7. truncateToWeek(GregorianCalendar date)
  8. weekDay(Calendar date)
  9. weekFloor(Calendar calendar)