packagecom.xkzhangsan.time.enums;import staticcom.xkzhangsan.time.constants.Constant.MONTHDAY_FORMAT_PRE;importjava.time.MonthDay;importjava.util.Objects;/*** 星座名称枚举,包含英文全称,中文全称,时间范围
*
* @ClassName: ConstellationNameEnum
* @Description: ConstellationNameEnum
*@authorxkzhangsan
* @date 2020年02-29*/
public enumConstellationNameEnum {
Aries(1, "白羊座", "03-21", "04-19"),
Taurus(2, "金牛座", "04-20", "05-20"),
Gemini(3, "双子座", "05-21", "06-21"),
Cancer(4, "巨蟹座", "06-22", "07-22"),
Leo(5, "狮子座", "07-23", "08-22"),
Virgo(6, "处女座", "08-23", "09-22"),
Libra(7, "天秤座", "09-23", "10-23"),
Scorpio(8, "天蝎座", "10-24", "11-22"),
Sagittarius(9, "射手座", "11-23", "12-21"),
Capricorn(10, "摩羯座", "12-22", "01-19"),
Aquarius(11, "水瓶座", "01-20", "02-18"),
Pisces(12, "双鱼座", "02-19", "03-20"),;/*** 序号*/
private intcode;/*** 中文名称*/
privateString nameCn;/*** 开始时间*/
privateString startDate;/*** 结束时间*/
privateString endDate;private ConstellationNameEnum(intcode, String nameCn, String startDate, String endDate) {this.code =code;this.nameCn =nameCn;this.startDate =startDate;this.endDate =endDate;
}/*** 根据日期查询星座名称枚举
*@parammonthDayStr MM-dd格式
*@return
*/
public staticConstellationNameEnum getConstellationNameEnumByMonthDay(String monthDayStr){
Objects.requireNonNull(monthDayStr,"monthDayStr");
MonthDay monthDay= MonthDay.parse(MONTHDAY_FORMAT_PRE +monthDayStr);for(ConstellationNameEnum constellationNameEnum : ConstellationNameEnum.values()){
MonthDay monthDayStart= MonthDay.parse(MONTHDAY_FORMAT_PRE +constellationNameEnum.getStartDate());
MonthDay monthDayEnd= MonthDay.parse(MONTHDAY_FORMAT_PRE +constellationNameEnum.getEndDate());if (monthDay.equals(monthDayStart) ||monthDay.equals(monthDayEnd)|| (monthDay.isAfter(monthDayStart) &&monthDay.isBefore(monthDayEnd))) {returnconstellationNameEnum;
}
}return null;
}/*** 根据日期查询星座中文名称
*@parammonthDayStr MM-dd格式
*@return
*/
public staticString getNameCnByMonthDay(String monthDayStr){
ConstellationNameEnum constellationNameEnum=getConstellationNameEnumByMonthDay(monthDayStr);return constellationNameEnum != null ? constellationNameEnum.getNameCn() : null;
}/*** 根据日期查询星座英文名称
*@parammonthDayStr MM-dd格式
*@return
*/
public staticString getNameEnByMonthDay(String monthDayStr){
ConstellationNameEnum constellationNameEnum=getConstellationNameEnumByMonthDay(monthDayStr);return constellationNameEnum != null ? constellationNameEnum.name() : null;
}public intgetCode() {returncode;
}publicString getNameCn() {returnnameCn;
}publicString getStartDate() {returnstartDate;
}publicString getEndDate() {returnendDate;
}
}