java控制臺(tái)打印本月的日歷
Java在控制臺(tái)打印本月日歷
在學(xué)習(xí)《Java核心技術(shù)卷I·基礎(chǔ)知識(shí)》第10版 的時(shí)候里面有一個(gè)小例子,就是在控制臺(tái)上打印日歷的一個(gè)例子,就想自己試試。
代碼如下:
import java.time.LocalDate;
public class TestScanner {
public static void main(String[] args) {
rili();
}
private static void rili() {
System.out.println(" Mon Tue Web Thu Fri Sta Sun");
//獲取當(dāng)前日期
LocalDate now = LocalDate.now();
//獲取當(dāng)前月份
int nowMonth = now.getMonthValue();
//獲取今天是幾號(hào)
int nowDay = now.getDayOfMonth();
//在外部設(shè)置一個(gè)月份的變量,用于與當(dāng)前月份進(jìn)行判斷
int dayOfMonth = nowMonth;
//獲取本月月初的日期
now = now.minusDays(nowDay - 1);
//獲取月初是星期幾
int firstWeek = now.getDayOfWeek().getValue();
String blank = "";
for(int i = 0; i < firstWeek; i++) {
blank += " ";
}
//如果1號(hào)是星期一的話前面添加三個(gè)空格
if(firstWeek != 1) {
//截取最后一個(gè)空格用于存放日期,不然的話會(huì)錯(cuò)位
blank = blank.substring(0, blank.length() - 1);
} else {
blank = " ";
}
//打印日期
System.out.print(blank + now.getDayOfMonth());
//如果加1天之后的日期還是本月份的就一直打印
while(dayOfMonth == nowMonth) {
//加1天
now = now.plusDays(1L);
//獲取加1天之后的月份
dayOfMonth = now.getMonthValue();
//如果加一天之后的月份不等于當(dāng)前月份,就直接跳出循環(huán)
if (dayOfMonth != nowMonth) {
break;
}
//判斷如果日期為雙位數(shù),就在前面添加兩個(gè)空格,否則就添加三個(gè)空格
if (now.getDayOfMonth() < 10) {
//判斷加一天之后的日期是否和今天相等,如果相等就在前面加個(gè)*
if (now.getDayOfMonth() == nowDay) {
System.out.print(" *" + now.getDayOfMonth());
} else {
System.out.print(" " + now.getDayOfMonth());
}
} else {
if (now.getDayOfMonth() == nowDay) {
System.out.print(" *" + now.getDayOfMonth());
} else {
System.out.print(" " + now.getDayOfMonth());
}
}
//獲取加一天之后的星期數(shù)
int week = now.getDayOfWeek().getValue();
//如果是星期日,就換行
if (week == 7) {
System.out.println();
}
}
}
}
結(jié)果

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Java表格JTable代碼實(shí)例解析
- Java Swing組件編程之JTable表格用法實(shí)例詳解
- Java Swing中JTable渲染器與編輯器用法示例
- Java Swing實(shí)現(xiàn)JTable檢測(cè)單元格數(shù)據(jù)變更事件的方法示例
- Java Swing中的表格(JTable)和樹(shù)(JTree)組件使用實(shí)例
- Java基于Calendar類(lèi)輸出指定年份和月份的日歷代碼實(shí)例
- Java Calendar日歷類(lèi)原理及使用方法
- java控制臺(tái)實(shí)現(xiàn)可視化日歷小程序
- java實(shí)現(xiàn)可視化日歷
- Java JTable 實(shí)現(xiàn)日歷的示例
相關(guān)文章
uploadify上傳及后臺(tái)文件合法性驗(yàn)證的代碼解析
這篇文章主要介紹了uploadify上傳及后臺(tái)文件合法性驗(yàn)證的代碼解析,整段代碼分為后臺(tái)上傳方法,文件合法性驗(yàn)證類(lèi),前端上傳js,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-11-11
Spring AI與DeepSeek實(shí)戰(zhàn)一之快速打造智能對(duì)話應(yīng)用
本文詳細(xì)介紹了如何通過(guò)SpringAI框架集成DeepSeek大模型,實(shí)現(xiàn)普通對(duì)話和流式對(duì)話功能,步驟包括申請(qǐng)API-KEY、項(xiàng)目搭建、配置API-KEY、創(chuàng)建ChatClient對(duì)象、創(chuàng)建對(duì)話接口、切換模型、使用prompt模板、流式對(duì)話等,感興趣的朋友一起看看吧2025-03-03
Java 實(shí)戰(zhàn)項(xiàng)目錘煉之IT設(shè)備固定資產(chǎn)管理系統(tǒng)的實(shí)現(xiàn)流程
讀萬(wàn)卷書(shū)不如行萬(wàn)里路,只學(xué)書(shū)上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Java+SSM+jsp+mysql+maven實(shí)現(xiàn)一個(gè)IT設(shè)備固定資產(chǎn)管理系統(tǒng),大家可以在過(guò)程中查缺補(bǔ)漏,提升水平2021-11-11
SpringCloud Gateway自定義filter獲取body中的數(shù)據(jù)為空的問(wèn)題
這篇文章主要介紹了SpringCloud Gateway自定義filter獲取body中的數(shù)據(jù)為空,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10
springboot 設(shè)置server.port不生效的原因及解決
這篇文章主要介紹了springboot 設(shè)置server.port不生效的原因及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
關(guān)于SSM框架下各層的解釋說(shuō)明(Controller等)
這篇文章主要介紹了關(guān)于SSM框架下各層的解釋說(shuō)明(Controller等),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02

