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)日歷,要求能夠通過輸入一個(gè)年份,月份顯示當(dāng)月的日歷布局,并且將周六周天使用'[]'包裹起來,另外要求如果顯示為當(dāng)月日歷時(shí),把當(dāng)天的日期使用'*'標(biāo)記出來。
步驟分析: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è)置為7week = week == 0?7 :week;//打印空格數(shù)System.out.printf('%d月一共有%d天,1號(hào)是周%dn',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)天是星期四則說明有三個(gè)空格,需要循環(huán)三次,則week-1for (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); }}
效果截圖:
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 簡體中文轉(zhuǎn)換為繁體中文的PHP函數(shù)2. Html5播放器實(shí)現(xiàn)倍速播放的方法示例3. Django:使用filter的pk進(jìn)行多值查詢操作4. php相對(duì)路徑轉(zhuǎn)化成絕對(duì)路徑5. Android 實(shí)現(xiàn)徹底退出自己APP 并殺掉所有相關(guān)的進(jìn)程6. XML入門的常見問題(三)7. Vue 構(gòu)造選項(xiàng) - 進(jìn)階使用說明8. 淺談優(yōu)化Django ORM中的性能問題9. 《CSS3實(shí)戰(zhàn)》筆記--漸變?cè)O(shè)計(jì)(二)10. ajax4jsf 1.0.2 發(fā)布,添加新的a4j tags.
