Java Day of Week getWeekOfMonth(final Date date)

Here you can find the source of getWeekOfMonth(final Date date)

Description

Get the week of the month by given date.

License

Apache License

Parameter

Parameter Description
date date to be handled.

Return

the week of the month by given date.

Declaration

public static int getWeekOfMonth(final Date date) 

Method Source Code

//package com.java2s;
//License from project: Apache License 

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

public class Main {
    private static final ThreadLocal<Calendar> calendarCache = new ThreadLocal<Calendar>();

    /**/*from ww  w  .  j  a  v  a  2  s.  c  om*/
     * Get the week of the month by given date. The first week of the month has
     * value 1.
     * 
     * @param date date to be handled.
     * @return the week of the month by given date.
     */
    public static int getWeekOfMonth(final Date date) {

        return getNumberOfGranularity(Calendar.WEEK_OF_MONTH, date);
    }

    private static int getNumberOfGranularity(final int granularity, final Date date) {

        Calendar calendar = buildCalendar(date);
        return calendar.get(granularity);
    }

    /**
     * Gets a calendar using the default time zone and locale. The Calendar
     * returned is based on the current time in the default time zone with the
     * default locale.
     * 
     * @return a Calendar object.
     */
    private static Calendar buildCalendar() {

        Calendar calendar = calendarCache.get();
        if (calendar == null) {
            calendar = GregorianCalendar.getInstance();
            calendarCache.set(calendar);
        }
        return calendar;
    }

    /**
     * Gets a calendar using the default time zone and locale. The Calendar
     * returned is based on the given time in the default time zone with the
     * default locale.
     * 
     * @return a Calendar object use given date.
     */
    private static Calendar buildCalendar(final Date date) {

        Calendar calendar = buildCalendar();
        calendar.setTime(date);
        return calendar;
    }
}

Related

  1. getWeekNumberFromDate(Date date)
  2. getWeekNumOfYear(Date date)
  3. getWeekOfDate(Date dt)
  4. getWeekOfDay(Date date)
  5. getWeekOfMonth(Date date)
  6. getWeekOfMonthFirstDay(Date dt)
  7. getWeekOfTheYear(Date aDate)
  8. getWeekOfTheYear(final Date dateOfYear)
  9. getWeekOfYear(Date d, Locale locale)