用Java編程輸出萬年歷的功能實現(xiàn)
1、功能實現(xiàn)
輸入1查看上個月日歷
輸入2查看下個月日歷
輸入3查看去年本月日歷
輸入4查看明年本月日歷
輸入5查看指定月份日歷
2、代碼所導入的包
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);
//將時間設置成一個月的第一天
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("*****************");
}
}
代碼運行結果如下:






到此這篇關于用Java編程輸出萬年歷的功能實現(xiàn)的文章就介紹到這了,更多相關Java輸出萬年歷內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Spring Boot/Angular整合Keycloak實現(xiàn)單點登錄功能
Keycloak新的發(fā)行版命名為Quarkus,專為GraalVM和OpenJDK HotSpot量身定制的一個Kurbernetes Native Java框架,計劃2019年底正式發(fā)布。這篇文章主要介紹了Spring Boot/Angular整合Keycloak實現(xiàn)單點登錄,需要的朋友可以參考下2019-10-10
SpringBoot整合ip2region獲取客戶端IP地理位置信息
在我們?nèi)粘EB開發(fā)工作中,經(jīng)常會有需要獲取客戶端地理位置的需求,本文主要介紹了SpringBoot整合ip2region獲取客戶端IP地理位置信息,具有一定的參考價值,感興趣的可以了解一下2024-08-08
SpringCloud超詳細講解微服務網(wǎng)關Gateway
這篇文章主要介紹了SpringCloud Gateway微服務網(wǎng)關,負載均衡,熔斷和限流,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07
Java實現(xiàn)Map遍歷key-value的四種方法
本文主要介紹了Java實現(xiàn)Map遍歷key-value的四種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-07-07

