How do I find a particular occurence of a week day in a month?

This example shows you how to find a particular occurence of a week day in a month.
package net.javaiq.examples.date;

/**
 * This class demonstrates on how to find a particular occurence of a week day in a month.
 * For example how to find second saturday or first monday or last tuesday in a month
 * @author JavaIQ.net
 * Creation Date Dec 10, 2010
 */
public class NthWeekDayOfTheMonthFinder {
    /**    
     * This method returns the date of the nth week day of the month(ex. 2nd Sunday )   
     * @param nth - the occurence. say for third monday of the month, the value should be 3.
     * @param weekDay - the day of the week. Sunday value is 0 and saturday is 7.
     * @param month - month of the year. Jan is 1 and Dec is 12
     * @param year - year.
     * @return nthDayOfTheMonth - indicates the day of the month of the occurence
     */
    public static double findNthWeekDayOfTheMonth(int nth, int weekDay, int month, int year) {
        int[] daysOfMonth = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
        int[] daysOfMonthLeapYear = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
        if (nth > 0)
            return (nth - 1) * 7 + 1 + (7 + weekDay - findDayOfTheWeek((nth - 1) * 7 + 1, month, year)) % 7;
        int days = 0;
        if (leapYear(year)) {
            days = daysOfMonthLeapYear[month - 1];
        } else {
            days = daysOfMonth[month - 1];
        }
        return (days - (findDayOfTheWeek(days, month, year) - weekDay + 7) % 7);
    }

    /**
     * This method returns true if the given year is Leap Year
     */
    public static boolean leapYear(int year) {
        if ((year / 4) != Math.floor(year / 4))
            return false;
        if ((year / 100) != Math.floor(year / 100))
            return true;
        if ((year / 400) != Math.floor(year / 400))
            return false;
        return true;
    }

    /**
     * This method returns the Day Of the Week
     */
    public static double findDayOfTheWeek(int day, int month, int year) {
        double a = Math.floor((14 - month) / 12);
        double y = year - a;
        double m = month + 12 * a - 2;
        double d = 
            (day + y + Math.floor(/ 4) - Math.floor(/ 100) + Math.floor(/ 400) + Math.floor((31 * m) / 12)) % 
            7;
        return d + 1;
    }

    /**
     * Method to test other methods in the class with sample inputs
     * @param args
     */
    public static void main(String[] args) {
        //Here we want to find when the second saturday falls in the month of July 2020
        int nth = 2; // indicating to find second occurence
        int weekDay = 7; // indicates to find saturday. Note sunday value is 0 and saturday value is 7
        int month = 7; // indicates july month
        int year = 2020; // obvious!
        // The day of the month on which second saturday occurs in July 2020 
        double nthDay = findNthWeekDayOfTheMonth(nth, weekDay, month, year);
        System.out.println(" The day of the month : " + nthDay);

    }
}