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

cn.geektool.core.date.Month Maven / Gradle / Ivy

package cn.geektool.core.date;

import java.util.Calendar;

/**
 * 月份枚举
* 与Calendar中的月份int值对应 * * @author jd * @see Calendar#JANUARY * @see Calendar#FEBRUARY * @see Calendar#MARCH * @see Calendar#APRIL * @see Calendar#MAY * @see Calendar#JUNE * @see Calendar#JULY * @see Calendar#AUGUST * @see Calendar#SEPTEMBER * @see Calendar#OCTOBER * @see Calendar#NOVEMBER * @see Calendar#DECEMBER * @see Calendar#UNDECIMBER */ public enum Month { /** * 一月 */ JANUARY(Calendar.JANUARY), /** * 二月 */ FEBRUARY(Calendar.FEBRUARY), /** * 三月 */ MARCH(Calendar.MARCH), /** * 四月 */ APRIL(Calendar.APRIL), /** * 五月 */ MAY(Calendar.MAY), /** * 六月 */ JUNE(Calendar.JUNE), /** * 七月 */ JULY(Calendar.JULY), /** * 八月 */ AUGUST(Calendar.AUGUST), /** * 九月 */ SEPTEMBER(Calendar.SEPTEMBER), /** * 十月 */ OCTOBER(Calendar.OCTOBER), /** * 十一月 */ NOVEMBER(Calendar.NOVEMBER), /** * 十二月 */ DECEMBER(Calendar.DECEMBER), /** * 十三月,仅用于农历 */ UNDECIMBER(Calendar.UNDECIMBER); // --------------------------------------------------------------- private static final int[] DAYS_OF_MONTH = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, -1}; /** * 对应值,见{@link Calendar} */ private final int value; /** * 构造 * * @param value 对应值,见{@link Calendar} */ Month(int value) { this.value = value; } /** * 获取{@link Calendar}中的对应值 * * @return {@link Calendar}中的对应值 */ public int getValue() { return this.value; } /** * 获取此月份最后一天的值,不支持的月份(例如UNDECIMBER)返回-1 * * @param isLeapYear 是否闰年 * @return 此月份最后一天的值 */ public int getLastDay(boolean isLeapYear) { return getLastDay(this.value, isLeapYear); } /** * 将 {@link Calendar}月份相关值转换为Month枚举对象
* * @param calendarMonthIntValue Calendar中关于Month的int值 * @return Month * @see Calendar#JANUARY * @see Calendar#FEBRUARY * @see Calendar#MARCH * @see Calendar#APRIL * @see Calendar#MAY * @see Calendar#JUNE * @see Calendar#JULY * @see Calendar#AUGUST * @see Calendar#SEPTEMBER * @see Calendar#OCTOBER * @see Calendar#NOVEMBER * @see Calendar#DECEMBER * @see Calendar#UNDECIMBER */ public static Month of(int calendarMonthIntValue) { switch (calendarMonthIntValue) { case Calendar.JANUARY: return JANUARY; case Calendar.FEBRUARY: return FEBRUARY; case Calendar.MARCH: return MARCH; case Calendar.APRIL: return APRIL; case Calendar.MAY: return MAY; case Calendar.JUNE: return JUNE; case Calendar.JULY: return JULY; case Calendar.AUGUST: return AUGUST; case Calendar.SEPTEMBER: return SEPTEMBER; case Calendar.OCTOBER: return OCTOBER; case Calendar.NOVEMBER: return NOVEMBER; case Calendar.DECEMBER: return DECEMBER; case Calendar.UNDECIMBER: return UNDECIMBER; default: return null; } } /** * 获得指定月的最后一天 * @param month 月份,从0开始 * @param isLeapYear 是否为闰年,闰年只对二月有影响 * @return 最后一天,可能为28,29,30,31 * @since 5.4.7 */ public static int getLastDay(int month, boolean isLeapYear){ int lastDay = DAYS_OF_MONTH[month]; if (isLeapYear && Calendar.FEBRUARY == month){ // 二月 lastDay += 1; } return lastDay; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy