Java Day End absoluteDay(Calendar cal)

Here you can find the source of absoluteDay(Calendar cal)

Description

Given a Calendar, return the number of days since 1600/12/31.

License

Apache License

Parameter

Parameter Description
cal the Calendar

Return

days number of days since 1600/12/31

Declaration


private static int absoluteDay(Calendar cal) 

Method Source Code

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

import java.util.*;

public class Main {
    /**//from ww w .  j  ava 2s.co m
     * Given a Calendar, return the number of days since 1600/12/31.
     *
     * @return days number of days since 1600/12/31
     * @param  cal the Calendar
     * @exception IllegalArgumentException if date is invalid
     */

    private static int absoluteDay(Calendar cal) {
        return cal.get(Calendar.DAY_OF_YEAR) + daysInPriorYears(cal.get(Calendar.YEAR));
    }

    /**
     * Return the number of days in prior years since 1601
     *
     * @return    days  number of days in years prior to yr.
     * @param     yr    a year (1600 < yr < 4000)
     * @exception IllegalArgumentException if year is outside of range.
     */

    private static int daysInPriorYears(int yr) {
        if (yr < 1601) {
            throw new IllegalArgumentException("'year' must be 1601 or greater");
        }
        int y = yr - 1601;
        int days = 365 * y // days in prior years
                + y / 4 // plus julian leap days in prior years
                - y / 100 // minus prior century years
                + y / 400; // plus years divisible by 400

        return days;
    }
}

Related

  1. calculateMaxStartDate(Calendar calendar, int daysAhead)
  2. calcYears(Date startDate, Date endDate)
  3. calenderFromDateString(String dateAndTime)
  4. checkTimeInRangeWithSkew(Date timeToCheck, Date startDate, Date endDate, int skewInMinutes)