2021-07-05-日历
生活随笔
收集整理的這篇文章主要介紹了
2021-07-05-日历
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Code
package com.wxz.main;import java.time.DayOfWeek; import java.time.LocalDate; import java.time.Month; import java.util.Scanner;/*** @author wuxianzi* @productName IntelliJ IDEA* @projectName 2021-7-4-日歷* @date 2021/7/4 - 20:09* @week 周日* @description*/ public class CalendarMain {public static void main(String[] args) {MainMenu:while(true) {System.out.println("輸入數字序號以選擇功能:1. 輸入指定日期開始查看日歷 2.以當前日期開始查看日歷 3.關于 4.退出");Scanner in = new Scanner(System.in);String serial = in.nextLine();String dateStr;switch (serial) {case "1" : {System.out.print("請輸入日期(格式為:yyyy-mm-dd,如:2021-07-04):");dateStr = in.nextLine();LocalDate date = null;try {date = LocalDate.parse(dateStr);} catch (Exception e) {System.out.println("輸入的日期格式有誤。");continue;}LocalDate sourceDate = date;Show:while (true) {Integer sourceDay = sourceDate.getDayOfMonth();Integer day = date.getDayOfMonth();date = date.minusDays(day - 1); //將date設置為當月1號Integer weekDay = date.getDayOfWeek().getValue(); //獲取星期Month month = date.getMonth();System.out.println(" 星期一 星期二 星期三 星期四 星期五 星期六 星期日");//以空格填充當月第一天前所缺的星期for(Integer i = 1;i < weekDay;i++) {System.out.print(" ");}while(date.getMonth() == month) {if(date.getYear() == sourceDate.getYear() && date.getMonthValue() == sourceDate.getMonthValue() && date.getDayOfMonth() == sourceDay) {System.out.printf("%5d*",date.getDayOfMonth());} else {System.out.printf("%6d",date.getDayOfMonth());}if(date.getDayOfWeek() == DayOfWeek.SUNDAY) {System.out.println();}date = date.plusDays(1);}date = date.minusDays(1);System.out.println();System.out.println();System.out.println("當前日期是:" + date.getYear() + "年" + date.getMonthValue() + "月");System.out.println();System.out.println();SecondaryMenu:while(true) {System.out.println("輸入字符'w'調整為上一個月,輸入字符's'調整為下一個月,輸入'exit'退出到上級菜單:");serial = in.nextLine();switch (serial) {case "w": {date = date.minusMonths(1);break SecondaryMenu;}case "s": {date = date.plusMonths(1);break SecondaryMenu;}case "exit": {break Show;}default:{System.out.println("序號輸入錯誤,請重新輸入。");}}}}System.out.println();} break;case "2" : {LocalDate date = LocalDate.now();LocalDate sourceDate = date;Show:while (true) {Integer sourceDay = sourceDate.getDayOfMonth();Integer day = date.getDayOfMonth();date = date.minusDays(day - 1); //將date設置為當月1號Integer weekDay = date.getDayOfWeek().getValue(); //獲取星期Month month = date.getMonth();System.out.println(" 星期一 星期二 星期三 星期四 星期五 星期六 星期日");//以空格填充當月第一天前所缺的星期for(Integer i = 1;i < weekDay;i++) {System.out.print(" ");}while(date.getMonth() == month) {if(date.getYear() == sourceDate.getYear() && date.getMonthValue() == sourceDate.getMonthValue() && date.getDayOfMonth() == sourceDay) {System.out.printf("%5d*",date.getDayOfMonth());} else {System.out.printf("%6d",date.getDayOfMonth());}if(date.getDayOfWeek() == DayOfWeek.SUNDAY) {System.out.println();}date = date.plusDays(1);}date = date.minusDays(1);System.out.println();System.out.println();System.out.println("當前日期是:" + date.getYear() + "年" + date.getMonthValue() + "月");System.out.println();System.out.println();SecondaryMenu:while(true) {System.out.println("輸入字符'w'調整為上一個月,輸入字符's'調整為下一個月,輸入'exit'退出到上級菜單:");serial = in.nextLine();switch (serial) {case "w": {date = date.minusMonths(1);break SecondaryMenu;}case "s": {date = date.plusMonths(1);break SecondaryMenu;}case "exit": {break Show;}default:{System.out.println("序號輸入錯誤,請重新輸入。");}}}}System.out.println();} break;case "3" : {System.out.println("作者:wxz\n郵箱: 1598475660@qq.com(同QQ號碼) / wujiajun728231@gmail.com(很少看)\n意見或建議/BUG反饋(都要標注是Calendar),其它勿擾。");System.out.println();} break;case "4" : {System.exit(0);} break;default : {System.out.println("序號輸入錯誤,請重新輸入。");}}}}}運行效果:
總結
以上是生活随笔為你收集整理的2021-07-05-日历的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SendMessage
- 下一篇: 清北学堂模拟赛d6t3 反击数