用Java編程輸出萬年歷的功能實現(xiàn)
1、功能實現(xiàn)
輸入1查看上個月日歷
輸入2查看下個月日歷
輸入3查看去年本月日歷
輸入4查看明年本月日歷
輸入5查看指定月份日歷
2、代碼所導(dǎo)入的包
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.Scanner;
3、main函數(shù)和定義的屬性
static Scanner key=new Scanner(System.in);//創(chuàng)建鍵盤掃描器
public static void main(String[] args) {
Calendar cal=new GregorianCalendar();
showTime(cal);//顯示本月日歷
while(true) {
help();//調(diào)出幫助菜單
int num=key.nextInt();//菜單輸入選項
switch(num) {
case 1:lastMonth();break;//查找上個月日歷
case 2:nextMonth();break;//查找下個月日歷
case 3:lastYearMonth();break;//查找去年本月日歷
case 4:nextYearMonth();break;//查找明年本月日歷
case 5:chooseMonth();break;//查找指定時間日歷
default :System.out.println("請輸入正確的指令:");
}
}
}
4、查找去年本月日歷方法
private static void lastYearMonth() {//查找去年本月日歷
Calendar cal=new GregorianCalendar();
cal.add(Calendar.YEAR,-1);//將時間轉(zhuǎn)換到去年
showTime(cal);//調(diào)用showTime()方法,打印日歷
}
5、查找明年本月日歷
private static void nextYearMonth() {//查找明年本月日歷
Calendar cal=new GregorianCalendar();
cal.add(Calendar.YEAR,1);//將時間轉(zhuǎn)換到明年
showTime(cal);//調(diào)用showTime()方法,打印日歷
}
6、查找指定時間日歷
private static void chooseMonth() {//查找指定時間日歷
System.out.println("請輸入時間,如 2020-2");
String str=key.next();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM");
//轉(zhuǎn)換字符串時間為date類型
Date date=null;
try {//拋出異常
date=sdf.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar cal= new GregorianCalendar();
cal.setTime(date);//將date的時間類型轉(zhuǎn)換為Calendar
showTime(cal);////調(diào)用showTime()方法,打印日歷
}
7、查找下個月日歷
private static void nextMonth() {//查找下個月日歷
Calendar cal=new GregorianCalendar();
cal.add(Calendar.MONTH,1);//將時間轉(zhuǎn)換到下個月
showTime(cal);//調(diào)用showTime()方法,打印日歷
}
8、查找上個月日歷
private static void lastMonth() {//查找上個月日歷
Calendar cal=new GregorianCalendar();
cal.add(Calendar.MONTH,-1);//將時間轉(zhuǎn)換到上個月
showTime(cal);//調(diào)用showTime()方法,打印日歷
}
9、打印幫助目錄
private static void help() {//打印幫助目錄
System.out.println("*****************");
System.out.println("輸入1查看上個月日歷");
System.out.println("輸入2查看下個月日歷");
System.out.println("輸入3查看去年本月日歷");
System.out.println("輸入4查看明年本月日歷");
System.out.println("輸入5查看指定月份日歷");
System.out.println("*****************");
}
10、該方法用來展示所搜索的時間
private static void showTime(Calendar cal) {//該方法用來展示所搜索的時間
int touday=cal.getActualMaximum(Calendar.DATE);
//獲取當月的總天數(shù)
cal.set(Calendar.DATE,1);
//將時間設(shè)置成一個月的第一天
System.out.println("一\t二\t三\t四\t五\t六\t日");
//將星期的文字表示出來
int weekday=cal.get(Calendar.DAY_OF_WEEK);
//獲取每月第一天是星期幾
for(int i=1;i<weekday-1;i++) {
//輸出首日前面的空格
System.out.print("\t");
}
for(int i=1;i<=touday;i++) {
//將一月里的每一天輸出
System.out.print(i+"\t");
if((i+weekday-2)%7==0) {
//輸出換行,加上前面的空格數(shù)再換行
System.out.println();
}
}
System.out.println();
System.out.println("*****************");
}
}
代碼運行結(jié)果如下:






到此這篇關(guān)于用Java編程輸出萬年歷的功能實現(xiàn)的文章就介紹到這了,更多相關(guān)Java輸出萬年歷內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實現(xiàn)Elasticsearch查詢當前索引全部數(shù)據(jù)的完整代碼
這篇文章主要介紹了如何在Java中實現(xiàn)查詢Elasticsearch索引中指定條件下的全部數(shù)據(jù),通過設(shè)置滾動查詢參數(shù)(scroll),可以一次性獲取滿足條件的數(shù)據(jù),而不需要限制每頁的查詢條數(shù)大小,這樣可以避免因數(shù)據(jù)量過大而引發(fā)的性能問題,需要的朋友可以參考下2025-02-02
@insert mybatis踩坑記錄,實體接收前端傳遞的參數(shù)
這篇文章主要介紹了@insert mybatis踩坑記錄,實體接收前端傳遞的參數(shù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
Java JVM原理與調(diào)優(yōu)_動力節(jié)點Java學(xué)院整理
JVM是Java Virtual Machine(Java虛擬機)的縮寫,JVM是一種用于計算設(shè)備的規(guī)范,它是一個虛構(gòu)出來的計算機,是通過在實際的計算機上仿真模擬各種計算機功能來實現(xiàn)的。下面通過本文給大家介紹jvm原理與調(diào)優(yōu)相關(guān)知識,感興趣的朋友一起學(xué)習(xí)吧2017-04-04
mybatis的xml中使用@符號調(diào)用類方法示例
這篇文章主要為大家介紹了mybatis的xml中使用@符號調(diào)用類方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12
springboot根據(jù)實體類生成表的實現(xiàn)方法
本文介紹了如何通過SpringBoot工程引入SpringDataJPA,并通過實體類自動生成數(shù)據(jù)庫表的過程,包括常見問題解決方法,感興趣的可以了解一下2024-09-09

