Java使用Calendar類實(shí)現(xiàn)動態(tài)日歷
本文實(shí)例為大家分享了Java使用Calendar類實(shí)現(xiàn)動態(tài)日歷的具體代碼,供大家參考,具體內(nèi)容如下
題目:使用Calendar類實(shí)現(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)前日期前加*號
代碼實(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 { //獲取一個日期實(shí)例 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('================================');//計(jì)數(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. asp(vbs)Rs.Open和Conn.Execute的詳解和區(qū)別及&H0001的說明2. CSS hack用法案例詳解3. ASP 處理JSON數(shù)據(jù)的實(shí)現(xiàn)代碼4. PHP設(shè)計(jì)模式中工廠模式深入詳解5. 用css截取字符的幾種方法詳解(css排版隱藏溢出文本)6. asp中response.write("中文")或者js中文亂碼問題7. 將properties文件的配置設(shè)置為整個Web應(yīng)用的全局變量實(shí)現(xiàn)方法8. ThinkPHP5實(shí)現(xiàn)JWT Token認(rèn)證的過程(親測可用)9. ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向10. jsp網(wǎng)頁實(shí)現(xiàn)貪吃蛇小游戲
