All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.orekit.time.Month Maven / Gradle / Ivy

Go to download

OREKIT (ORbits Extrapolation KIT) is a low level space dynamics library. It provides basic elements (orbits, dates, attitude, frames ...) and various algorithms to handle them (conversions, analytical and numerical propagation, pointing ...).

There is a newer version: 12.2
Show newest version
/* Copyright 2002-2021 CS GROUP
 * Licensed to CS GROUP (CS) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * CS licenses this file to You 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.
 */
package org.orekit.time;

import java.util.HashMap;
import java.util.Map;

import org.orekit.errors.OrekitIllegalArgumentException;
import org.orekit.errors.OrekitMessages;

/** Enumerate representing a calendar month.
 * 

This enum is mainly useful to parse data files that use month names * like Jan or JAN or January or numbers like 1 or 01. It handles month numbers * as well as three letters abbreviation and full names, independently of capitalization.

* @see DateComponents * @author Luc Maisonobe */ public enum Month { /** January. */ JANUARY( 1), /** February. */ FEBRUARY( 2), /** March. */ MARCH( 3), /** April. */ APRIL( 4), /** May. */ MAY( 5), /** June. */ JUNE( 6), /** July. */ JULY( 7), /** August. */ AUGUST( 8), /** September. */ SEPTEMBER( 9), /** October. */ OCTOBER(10), /** November. */ NOVEMBER(11), /** December. */ DECEMBER(12); /** Parsing map. */ private static final Map STRINGS_MAP = new HashMap(); static { for (final Month month : values()) { STRINGS_MAP.put(month.getLowerCaseName(), month); STRINGS_MAP.put(month.getLowerCaseAbbreviation(), month); } } /** Numbers map. */ private static final Map NUMBERS_MAP = new HashMap(); static { for (final Month month : values()) { NUMBERS_MAP.put(month.getNumber(), month); } } /** Month number. */ private final int number; /** Lower case full name. */ private final String lowerCaseName; /** Capitalized full name. */ private final String capitalizedName; /** Upper case three letters abbreviation. */ private final String upperCaseAbbreviation; /** Lower case three letters abbreviation. */ private final String lowerCaseAbbreviation; /** Capitalized three letters abbreviation. */ private final String capitalizedAbbreviation; /** Simple constructor. * @param number month number */ Month(final int number) { this.number = number; lowerCaseName = toString().toLowerCase(); capitalizedName = toString().charAt(0) + lowerCaseName.substring(1); upperCaseAbbreviation = toString().substring(0, 3); lowerCaseAbbreviation = lowerCaseName.substring(0, 3); capitalizedAbbreviation = capitalizedName.substring(0, 3); } /** Get the month number. * @return month number between 1 and 12 */ public int getNumber() { return number; } /** Get the upper case full name. * @return upper case full name */ public String getUpperCaseName() { return toString(); } /** Get the lower case full name. * @return lower case full name */ public String getLowerCaseName() { return lowerCaseName; } /** Get the capitalized full name. * @return capitalized full name */ public String getCapitalizedName() { return capitalizedName; } /** Get the upper case three letters abbreviation. * @return upper case three letters abbreviation */ public String getUpperCaseAbbreviation() { return upperCaseAbbreviation; } /** Get the lower case three letters abbreviation. * @return lower case three letters abbreviation */ public String getLowerCaseAbbreviation() { return lowerCaseAbbreviation; } /** Get the capitalized three letters abbreviation. * @return capitalized three letters abbreviation */ public String getCapitalizedAbbreviation() { return capitalizedAbbreviation; } /** Parse the string to get the month. *

* The string can be either the month number, the full name or the * three letter abbreviation. The parsing ignore the case of the specified * string and trims surrounding blanks. *

* @param s string to parse * @return the month corresponding to the string * @exception IllegalArgumentException if the string does not correspond to a month */ public static Month parseMonth(final String s) { final String normalizedString = s.trim().toLowerCase(); final Month month = STRINGS_MAP.get(normalizedString); if (month == null) { try { return getMonth(Integer.parseInt(normalizedString)); } catch (NumberFormatException nfe) { throw new OrekitIllegalArgumentException(OrekitMessages.UNKNOWN_MONTH, s); } } return month; } /** Get the month corresponding to a number. * @param number month number * @return the month corresponding to the string * @exception IllegalArgumentException if the string does not correspond to a month */ public static Month getMonth(final int number) { final Month month = NUMBERS_MAP.get(number); if (month == null) { throw new OrekitIllegalArgumentException(OrekitMessages.UNKNOWN_MONTH, number); } return month; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy