原始碼:
import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;public class MyDate {public static void main(String[] args) {MyDate date = new MyDate();date.myCalendar();}//實現日曆的方法public void myCalendar() {GregorianCalendar now = new GregorianCalendar();// 獲得一個Date對象Date date = new Date();// 列印目前時間System.out.println(date.toString());// 設定目前時間now.setTime(date);// 從日期中取得當前的日int toDay = now.get(Calendar.DAY_OF_MONTH);// 從日期中取得當前的月int month = now.get(Calendar.MONTH);// 設定now的日期為1now.set(Calendar.DAY_OF_MONTH, 1);// 得到now是一周的第幾天int week = now.get(Calendar.DAY_OF_WEEK);// 列印日曆頭部標示System.out.println("日\t一\t二\t三\t四\t五\t六");// 列印當前日期前面的空格for (int i = Calendar.SUNDAY; i < week; i++) {System.out.print("\t");}// 列印日曆主體while (now.get(Calendar.MONTH) == month) {int day = now.get(Calendar.DAY_OF_MONTH);// 對輸出的日曆進行對齊,小於10的加上一個空格if (day < 10) {// 如果是當前日期,加上標示if (day == toDay) {System.out.print("▲" + day + "▲\t");} else {System.out.print(" " + day + "\t");}} else {// 如果是當前日期,加上標示if (day == toDay) {System.out.print("▲" + day + "▲\t");} else {System.out.print("" + day + "\t");}}//如果是周六,進行換行if (week == Calendar.SATURDAY) {System.out.println();}//每次輸出日期後,將日期增加一天now.add(Calendar.DAY_OF_MONTH, 1);//重新獲得一周的第幾天week = now.get(Calendar.DAY_OF_WEEK);}}}
輸出結果: