Over a million developers have joined DZone.

Handling Weeks in Java 7

Learn a handy trick to incorporate and output the number of weeks in the year in your code.

· Java Zone

What every Java engineer should know about microservices: Reactive Microservices Architecture.  Brought to you in partnership with Lightbend.

Some applications, in their business logic, deal with the number of weeks in a year and the current week of the year. There are 52 weeks in a year, but 52 weeks multiplied by 7 days per week equals 364 days per year, not the actual 365 days. A week number is used to refer to the week of the year. 

Java 7 has introduced several methods to support determining the week of the year.

Some implementations of the abstract java.util.Calendar class do not support week calculations. To determine if the calendar implementation supports week calculations, we need to execute the isWeekDateSupported method. It returns true if the support is provided. To return the number of weeks for the current calendar year, use the getWeeksInWeekYear method. To determine the week for the current date, use the get method with the WEEK_OF_YEAR as its argument.

Below is the code to get the total number of weeks and current week.

import java.util.Calendar; 
public class WeeksInYear {     
    public static void main(String[] args) {  
        Calendar calendar = Calendar.getInstance();             
        if(calendar.isWeekDateSupported()) {               
            System.out.println("Number of weeks in this year: " + calendar.getWeeksInWeekYear());                   
            System.out.println("Current week number: " + calendar.                               get(Calendar.WEEK_OF_YEAR));         
        }     
    }
}


Number of weeks in this year: 53. The above code will give the following output

Current week number: 47

Explanation of Code

An instance of the Calendar class is created, which is an instance of the GregorianCalendar class. An if statement was controlled by the isWeekDateSupported method. It returned true, which resulted in the execution of the getWeeksInWeekYear and get methods. The get method was passed in the field WEEK_OF_YEAR, which returned the current week number.

Microservices for Java, explained. Revitalize your legacy systems (and your career) with Reactive Microservices Architecture, a free O'Reilly book. Brought to you in partnership with Lightbend.

Topics:
java 7 ,java ,calendar

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

SEE AN EXAMPLE
Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.
Subscribe

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}