用Java編程輸出萬(wàn)年歷的功能實(shí)現(xiàn)
1、功能實(shí)現(xiàn)
輸入1查看上個(gè)月日歷
輸入2查看下個(gè)月日歷
輸入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();//菜單輸入選項(xiàng)
switch(num) {
case 1:lastMonth();break;//查找上個(gè)月日歷
case 2:nextMonth();break;//查找下個(gè)月日歷
case 3:lastYearMonth();break;//查找去年本月日歷
case 4:nextYearMonth();break;//查找明年本月日歷
case 5:chooseMonth();break;//查找指定時(shí)間日歷
default :System.out.println("請(qǐng)輸入正確的指令:");
}
}
}
4、查找去年本月日歷方法
private static void lastYearMonth() {//查找去年本月日歷
Calendar cal=new GregorianCalendar();
cal.add(Calendar.YEAR,-1);//將時(shí)間轉(zhuǎn)換到去年
showTime(cal);//調(diào)用showTime()方法,打印日歷
}
5、查找明年本月日歷
private static void nextYearMonth() {//查找明年本月日歷
Calendar cal=new GregorianCalendar();
cal.add(Calendar.YEAR,1);//將時(shí)間轉(zhuǎn)換到明年
showTime(cal);//調(diào)用showTime()方法,打印日歷
}
6、查找指定時(shí)間日歷
private static void chooseMonth() {//查找指定時(shí)間日歷
System.out.println("請(qǐng)輸入時(shí)間,如 2020-2");
String str=key.next();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM");
//轉(zhuǎn)換字符串時(shí)間為date類型
Date date=null;
try {//拋出異常
date=sdf.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar cal= new GregorianCalendar();
cal.setTime(date);//將date的時(shí)間類型轉(zhuǎn)換為Calendar
showTime(cal);////調(diào)用showTime()方法,打印日歷
}
7、查找下個(gè)月日歷
private static void nextMonth() {//查找下個(gè)月日歷
Calendar cal=new GregorianCalendar();
cal.add(Calendar.MONTH,1);//將時(shí)間轉(zhuǎn)換到下個(gè)月
showTime(cal);//調(diào)用showTime()方法,打印日歷
}
8、查找上個(gè)月日歷
private static void lastMonth() {//查找上個(gè)月日歷
Calendar cal=new GregorianCalendar();
cal.add(Calendar.MONTH,-1);//將時(shí)間轉(zhuǎn)換到上個(gè)月
showTime(cal);//調(diào)用showTime()方法,打印日歷
}
9、打印幫助目錄
private static void help() {//打印幫助目錄
System.out.println("*****************");
System.out.println("輸入1查看上個(gè)月日歷");
System.out.println("輸入2查看下個(gè)月日歷");
System.out.println("輸入3查看去年本月日歷");
System.out.println("輸入4查看明年本月日歷");
System.out.println("輸入5查看指定月份日歷");
System.out.println("*****************");
}
10、該方法用來(lái)展示所搜索的時(shí)間
private static void showTime(Calendar cal) {//該方法用來(lái)展示所搜索的時(shí)間
int touday=cal.getActualMaximum(Calendar.DATE);
//獲取當(dāng)月的總天數(shù)
cal.set(Calendar.DATE,1);
//將時(shí)間設(shè)置成一個(gè)月的第一天
System.out.println("一\t二\t三\t四\t五\t六\t日");
//將星期的文字表示出來(lái)
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("*****************");
}
}
代碼運(yùn)行結(jié)果如下:






到此這篇關(guān)于用Java編程輸出萬(wàn)年歷的功能實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Java輸出萬(wàn)年歷內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java-流的使用完結(jié)與異常處理機(jī)制(詳解)
下面小編就為大家?guī)?lái)一篇java-流的使用完結(jié)與異常處理機(jī)制(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09
Java實(shí)現(xiàn)的校驗(yàn)銀行卡功能示例
這篇文章主要介紹了Java實(shí)現(xiàn)的校驗(yàn)銀行卡功能,結(jié)合完整實(shí)例形式分析了java針對(duì)銀行卡類型、歸屬地等信息的判斷、讀取相關(guān)操作技巧,需要的朋友可以參考下2018-06-06
Spring Boot/Angular整合Keycloak實(shí)現(xiàn)單點(diǎn)登錄功能
Keycloak新的發(fā)行版命名為Quarkus,專為GraalVM和OpenJDK HotSpot量身定制的一個(gè)Kurbernetes Native Java框架,計(jì)劃2019年底正式發(fā)布。這篇文章主要介紹了Spring Boot/Angular整合Keycloak實(shí)現(xiàn)單點(diǎn)登錄,需要的朋友可以參考下2019-10-10
SpringBoot整合ip2region獲取客戶端IP地理位置信息
在我們?nèi)粘EB開(kāi)發(fā)工作中,經(jīng)常會(huì)有需要獲取客戶端地理位置的需求,本文主要介紹了SpringBoot整合ip2region獲取客戶端IP地理位置信息,具有一定的參考價(jià)值,感興趣的可以了解一下2024-08-08
java實(shí)現(xiàn)監(jiān)聽(tīng)u盤示例分享
這篇文章主要介紹了java實(shí)現(xiàn)監(jiān)聽(tīng)u盤示例,需要的朋友可以參考下2014-03-03
Java volatile如何實(shí)現(xiàn)禁止指令重排
這篇文章主要介紹了Java volatile如何實(shí)現(xiàn)禁止指令重排,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
SpringCloud超詳細(xì)講解微服務(wù)網(wǎng)關(guān)Gateway
這篇文章主要介紹了SpringCloud Gateway微服務(wù)網(wǎng)關(guān),負(fù)載均衡,熔斷和限流,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07
Java實(shí)現(xiàn)Map遍歷key-value的四種方法
本文主要介紹了Java實(shí)現(xiàn)Map遍歷key-value的四種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07

