Java Julian Date julian(int date)

Here you can find the source of julian(int date)

Description

julian

License

Apache License

Declaration

private static int julian(int date) 

Method Source Code

//package com.java2s;
/*//ww  w  .j ava 2s.  c o m
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

public class Main {
    public static final int MIN_GENERATE_DATE = 92001;

    private static int julian(int date) {
        int offset = date - MIN_GENERATE_DATE;
        int result = MIN_GENERATE_DATE;

        while (true) {
            int year = result / 1000;
            int yearEnd = year * 1000 + 365 + (isLeapYear(year) ? 1 : 0);
            if (result + offset <= yearEnd) {
                break;
            }

            offset -= yearEnd - result + 1;
            result += 1000;
        }
        return (result + offset);
    }

    private static boolean isLeapYear(int year) {
        return year % 4 == 0 && year % 100 != 0;
    }
}

Related

  1. julianCentury(double JD)
  2. julianCentury(double julianDay)
  3. julianDate2JDN(int year, int month, int day)
  4. julianDay(int day, int month, int year)