Java APIの日付時系列24 ----- Jdk8新しい日付と時刻のAPIクラスjava.timeパッケージ、MONTHDAYクラスのソースコードとアプリケーションは、同じ月に一日の時間を比較しました。MONTHDAYは簡単な指示やアプリケーションで作られました。グレゴリオ暦の誕生日に基づいて算出される干支星座は、クラス(アリエス、トーラス、ジェミニ、がん、レオ、乙女座、天秤座、さそり座、射手座、山羊座、水瓶座、魚座)に属します。
1.ゾディアック名前列挙
以下のためのパッケージ変更com.xkzhangsan.time.enums; インポート 静的com.xkzhangsan.time.constants.Constant.MONTHDAY_FORMAT_PRE; インポートjava.time.MonthDay; インポートjava.util.Objects; / ** *星座名の列挙、英語名を含め、中国のフルネーム、時間帯 * * @ClassName:ConstellationNameEnum * @description:ConstellationNameEnum * @author xkzhangsan * 2020年2月29日@date * / パブリック 列挙ConstellationNameEnum { 牡羊座( 1、 "牡羊座"、 "03から21"、「04 -19 " )、 トーラス( 2、"トーラス"" 4月20日"" 05から20 " )、 ジェミニ(図3、"双子座」、 "05から21"、 "06から21")、 がん( 4、 "癌"、 "06から22"、 "07から22" )、 レオ(。5、 "レオ"、 "7月23日"、 "08から22" )、 バルゴ(図6、「処女ブロック"" 8月23日"" 09から22 " )、 天秤座( 7"天秤座"" 9月23日"" 10-23 " )、 さそり座( 8、"さそり座"" 10-24」 "11-22" )、 射手座( 9、 "座"、 "11-23"、 "12-21" )、 山羊座( 10 "山羊座"、 "12-22"、 "1月19日" ) 、 アクエリアスで( 11 "アクエリアス"、 "01-20"、 "2月18日" )、 魚座( 12は"魚座"、 "02から19"、 "03から20"で、); / ** * ID * / プライベート int型のコード。 / ** *中国名 * / プライベート文字列nameCn; / ** *開始時間 * / プライベート文字列たstartDate; / ** *終了時間 * / プライベート文字列endDateに、 プライベート ConstellationNameEnum(int型のコード、文字列nameCn、たstartDate文字列、文字列endDateに){ この .CODE = コード; この .nameCn = nameCn; この .startDate = たstartDate; この .endDate = endDateに; } / ** *クエリ日星座名が列挙 * @paramをmonthDayStr MM-DD格式 * @return * / パブリック 静的ConstellationNameEnum getConstellationNameEnumByMonthDay(文字列monthDayStr){ Objects.requireNonNull(monthDayStr、 "monthDayStr" )。 MONTHDAY MONTHDAY = MonthDay.parse(MONTHDAY_FORMAT_PRE + monthDayStr)。 用(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))){ 戻りconstellationNameEnumを; } } 戻り ヌル。 } / ** *クエリ日付星座中国名 * @param monthDayStr MM-DDの形式 * @return * / パブリック 静的文字列getNameCnByMonthDay(文字列monthDayStr){ constellationNameEnum constellationNameEnum =getConstellationNameEnumByMonthDay(monthDayStr); リターン constellationNameEnum =!ヌル constellationNameEnum.getNameCn():?ヌル; } / ** *日付に基づいてクエリ星座英語名 * @param monthDayStr MM-DD形式 * @return * / パブリック 静的な文字列getNameEnByMonthDay(文字列monthDayStr ){ constellationNameEnum constellationNameEnum = getConstellationNameEnumByMonthDay(monthDayStr); 戻り constellationNameEnum =!ヌル constellationNameEnum.name():NULL ; } 公共 INT にgetCode(){ 戻りコードと } パブリック文字列getNameCn(){ 戻りnameCnと、 } パブリック文字列getStartDate(){ 返すたstartDateと、 } パブリック文字列getEndDate(){ 戻りendDateに。 } }
メイン方法:パブリック静的ConstellationNameEnum getConstellationNameEnumByMonthDay(文字列monthDayStr)は、開始時刻とに列挙列入力の日の星座を比較することによって誘導されます。
星座の名前と範囲Baiduの百科事典。
2.アプリケーション
/ ** *クエリ日星座中国名 * @param MM-DDのmonthDayStrフォーマット * @return * / パブリック 静的文字列getConstellationNameCn(文字列monthDayStr){ リターンConstellationNameEnum.getNameCnByMonthDay(monthDayStr); } / ** *中国の日付コンステレーションクエリ名前 * @paramのDATE * @return * / パブリック 静的文字列getConstellationNameCn(日付){ 文字列monthDayStr = DateTimeFormatterUtil.format(DATE、DateTimeFormatterUtil.MM_DD_FMT); リターンConstellationNameEnum.getNameCnByMonthDay(monthDayStr); } / ** *クエリ日星座英語名 * @param MM-DDのmonthDayStrフォーマット * @return * / パブリック 静的文字列getConstellationNameEn(文字列monthDayStr){ リターンConstellationNameEnum.getNameEnByMonthDay(monthDayStr); }
テストコード:
/ ** *星座计算测试 * / @Test 公共 無効constellationTest(){ System.out.printlnは(DateTimeCalculatorUtil.getConstellationNameCn( "2月29日" )); System.out.println(DateTimeCalculatorUtil.getConstellationNameEn( "2月29日" )); // 2020年5月1日的星座 のSystem.out.println(DateTimeCalculatorUtil.getConstellationNameCn(DateTimeCalculatorUtil.getDate(2020、5、1 )))。 }
出力:
魚座
魚座
牡牛座
ソースアドレス:https://github.com/xkzhangsan/xk-time