Java使用Calendar類實(shí)現(xiàn)動(dòng)態(tài)日歷
本文實(shí)例為大家分享了Java使用Calendar類實(shí)現(xiàn)動(dòng)態(tài)日歷的具體代碼,供大家參考,具體內(nèi)容如下
題目:
使用Calendar類實(shí)現(xiàn)一個(gè)動(dòng)態(tài)日歷,要求能夠通過(guò)輸入一個(gè)年份,月份顯示當(dāng)月的日歷布局,并且將周六周天使用"[]"包裹起來(lái),另外要求如果顯示為當(dāng)月日歷時(shí),把當(dāng)天的日期使用"*"標(biāo)記出來(lái)。
步驟分析:
1.打印日歷
1.1當(dāng)月總天數(shù)
1.2當(dāng)月第一天是周幾(注意:月份是從0開始,星期是從周日(1)開始)
2.周末用【】包裹
3.當(dāng)前日期前加*號(hào)
代碼實(shí)現(xiàn):
package com.softeem.j2016.example; import java.util.Calendar; import java.util.Date; import java.util.Scanner; /** * 1.打印日歷 * 1.1當(dāng)月總天數(shù) * 1.2當(dāng)月第一天是周幾 * 2.周末用【】包裹 * 3.當(dāng)前日期加“*” * @author admin * 2021/7/23 */ public class CalendarDemo { //獲取一個(gè)日期實(shí)例 static Calendar c = Calendar.getInstance(); public static void show(int year,int month){ //獲取當(dāng)天日期 Date today = new Date(); //獲取系統(tǒng)時(shí)間的年月日 int y = today.getYear() +1900; int m = today.getMonth() +1; int d = today.getDate() ; c.set(Calendar.YEAR,year); c.set(Calendar.MONTH,month-1); //設(shè)置當(dāng)前日歷的日期為本月的第一天(7.1) c.set(Calendar.DAY_OF_MONTH,1); //獲取當(dāng)前字段所表示日歷的可能具備最大值(本月總天數(shù)) int days = c.getActualMaximum(Calendar.DAY_OF_MONTH); //獲取當(dāng)月第一天是周幾(7.1前面設(shè)置為本月第一天),周日=1; int week = c.get(Calendar.DAY_OF_WEEK)-1; //如果當(dāng)天是周日,則設(shè)置為7 week = week == 0?7 :week; //打印空格數(shù) System.out.printf("%d月一共有%d天,1號(hào)是周%d\n",month,days,week); System.out.printf("==========【%d】年【%d】月==========\n",year,month); System.out.println("一\t二\t三\t四\t五\t六\t日"); System.out.println("================================"); //計(jì)數(shù)器 int count = 0; //(輸出空格)如果當(dāng)天是星期四則說(shuō)明有三個(gè)空格,需要循環(huán)三次,則week-1 for (int i = 0; i < week - 1; i++) { System.out.print("\t"); count++; } for (int i = 1; i <=days; i++) { count++; //根據(jù)日期的數(shù)值判斷是否是周末,如果是則用"[]"包裹 String date = (count % 7 ==6 || count % 7 == 0)?"["+i+"]\t":i+"\t"; //在當(dāng)前日期前使用"*"標(biāo)記 date = (y == year && m == month && d == i)?"*" + date:date; //輸出日期 System.out.print(date); //達(dá)到七位則換行 if (count%7==0){ System.out.println(); } } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("請(qǐng)輸入年份"); int year = sc.nextInt(); System.out.println("請(qǐng)輸入月份"); int month = sc.nextInt(); show(year,month); } }
效果截圖:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
解決SpringBoot整合Mybatis掃描不到Mapper的問(wèn)題
這篇文章主要介紹了解決SpringBoot整合Mybatis掃描不到Mapper的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04springboot訪問(wèn)請(qǐng)求404的原因及解決辦法
在使用Spring Boot開發(fā)應(yīng)用程序時(shí),有時(shí)可能會(huì)遇到訪問(wèn)請(qǐng)求出現(xiàn)404錯(cuò)誤的情況,即請(qǐng)求的資源未找到,這篇文章主要給大家介紹了關(guān)于springboot訪問(wèn)請(qǐng)求404的原因及解決辦法,需要的朋友可以參考下2023-09-09springboot docker jenkins 自動(dòng)化部署并上傳鏡像的步驟詳解
這篇文章主要介紹了springboot docker jenkins 自動(dòng)化部署并上傳鏡像的相關(guān)資料,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05實(shí)例詳解Java中如何對(duì)方法進(jìn)行調(diào)用
這篇文章主要介紹了實(shí)例詳解Java中如何對(duì)方法進(jìn)行調(diào)用,是Java入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-10-10Java實(shí)時(shí)獲取基金收益項(xiàng)目源碼分享
這篇文章主要介紹了Java實(shí)時(shí)獲取基金收益項(xiàng)目源碼分享,主要包括JAVA爬取天天基金網(wǎng)數(shù)據(jù)使用實(shí)例、應(yīng)用技巧、基本知識(shí)點(diǎn)總結(jié)和需要注意事項(xiàng),需要的朋友可以參考下2021-03-03mybatis實(shí)現(xiàn)增刪改查_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
本文通過(guò)實(shí)例代碼給大家介紹了mybatis實(shí)現(xiàn)增刪改查功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-09-09Java結(jié)構(gòu)型設(shè)計(jì)模式之組合模式詳解
組合模式,又叫部分整體模式,它創(chuàng)建了對(duì)象組的數(shù)據(jù)結(jié)構(gòu)組合模式使得用戶對(duì)單個(gè)對(duì)象和組合對(duì)象的訪問(wèn)具有一致性。本文將通過(guò)示例為大家詳細(xì)介紹一下組合模式,需要的可以參考一下2022-09-09