Java使用Calendar類實現動態日歷
本文實例為大家分享了Java使用Calendar類實現動態日歷的具體代碼,供大家參考,具體內容如下
題目:使用Calendar類實現一個動態日歷,要求能夠通過輸入一個年份,月份顯示當月的日歷布局,并且將周六周天使用'[]'包裹起來,另外要求如果顯示為當月日歷時,把當天的日期使用'*'標記出來。
步驟分析:1.打印日歷
1.1當月總天數
1.2當月第一天是周幾(注意:月份是從0開始,星期是從周日(1)開始)
2.周末用【】包裹
3.當前日期前加*號
代碼實現:package com.softeem.j2016.example; import java.util.Calendar;import java.util.Date;import java.util.Scanner; /** * 1.打印日歷 * 1.1當月總天數 * 1.2當月第一天是周幾 * 2.周末用【】包裹 * 3.當前日期加“*” * @author admin * 2021/7/23 */public class CalendarDemo { //獲取一個日期實例 static Calendar c = Calendar.getInstance(); public static void show(int year,int month){//獲取當天日期Date today = new Date();//獲取系統時間的年月日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);//設置當前日歷的日期為本月的第一天(7.1)c.set(Calendar.DAY_OF_MONTH,1);//獲取當前字段所表示日歷的可能具備最大值(本月總天數)int days = c.getActualMaximum(Calendar.DAY_OF_MONTH);//獲取當月第一天是周幾(7.1前面設置為本月第一天),周日=1;int week = c.get(Calendar.DAY_OF_WEEK)-1;//如果當天是周日,則設置為7week = week == 0?7 :week;//打印空格數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('================================');//計數器int count = 0;//(輸出空格)如果當天是星期四則說明有三個空格,需要循環三次,則week-1for (int i = 0; i < week - 1; i++) { System.out.print('t'); count++;}for (int i = 1; i <=days; i++) { count++; //根據日期的數值判斷是否是周末,如果是則用'[]'包裹 String date = (count % 7 ==6 || count % 7 == 0)?'['+i+']t':i+'t'; //在當前日期前使用'*'標記 date = (y == year && m == month && d == i)?'*' + date:date; //輸出日期 System.out.print(date); //達到七位則換行 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); }}
效果截圖:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
相關文章:
