Java使用Calendar類實現(xiàn)動態(tài)日歷
本文實例為大家分享了Java使用Calendar類實現(xiàn)動態(tài)日歷的具體代碼,供大家參考,具體內(nèi)容如下
題目:使用Calendar類實現(xiàn)一個動態(tài)日歷,要求能夠通過輸入一個年份,月份顯示當(dāng)月的日歷布局,并且將周六周天使用'[]'包裹起來,另外要求如果顯示為當(dāng)月日歷時,把當(dāng)天的日期使用'*'標(biāo)記出來。
步驟分析:1.打印日歷
1.1當(dāng)月總天數(shù)
1.2當(dāng)月第一天是周幾(注意:月份是從0開始,星期是從周日(1)開始)
2.周末用【】包裹
3.當(dāng)前日期前加*號
代碼實現(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 { //獲取一個日期實例 static Calendar c = Calendar.getInstance(); public static void show(int year,int month){//獲取當(dāng)天日期Date today = new Date();//獲取系統(tǒng)時間的年月日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號是周%dn',month,days,week);System.out.printf('==========【%d】年【%d】月==========n',year,month);System.out.println('一t二t三t四t五t六t日');System.out.println('================================');//計數(shù)器int count = 0;//(輸出空格)如果當(dāng)天是星期四則說明有三個空格,需要循環(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('請輸入年份');int year = sc.nextInt();System.out.println('請輸入月份');int month = sc.nextInt();show(year,month); }}
效果截圖:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Intellij IDEA 2019 最新亂碼問題及解決必殺技(必看篇)2. JS繪圖Flot如何實現(xiàn)動態(tài)可刷新曲線圖3. 關(guān)于HTML5的img標(biāo)簽4. CSS3實現(xiàn)動態(tài)翻牌效果 仿百度貼吧3D翻牌一次動畫特效5. 未來的J2EE主流應(yīng)用框架:對比Spring和EJB36. Android Manifest中meta-data擴(kuò)展元素數(shù)據(jù)的配置與獲取方式7. Android自定義View實現(xiàn)掃描效果8. JS+css3實現(xiàn)幻燈片輪播圖9. css3溢出隱藏的方法10. ASP.NET MVC獲取多級類別組合下的產(chǎn)品
