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; //如果當天是周日,則設置為7 week = week == 0?7 :week; //打印空格數 System.out.printf("%d月一共有%d天,1號是周%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("================================"); //計數器 int count = 0; //(輸出空格)如果當天是星期四則說明有三個空格,需要循環三次,則week-1 for (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); } }
效果截圖:
以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。
推薦閱讀:
- 利用Java編寫一個屬於自己的日歷
- Java常用類之日期相關類使用詳解
- java實現打印日歷
- 新手小白學JAVA 日期類Date SimpleDateFormat Calendar(入門)
- Java日期時間類(Date、DateFormat、Calendar)解析