1. 程式人生 > >Java日曆類(GregorianCalendar和Calendar)的簡單例子

Java日曆類(GregorianCalendar和Calendar)的簡單例子

【例1】列印系統當前日曆月份資訊。

import java.text.DateFormatSymbols;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Locale;

/**
 * 列印當前月份日曆
 * 
 * @date 2017-07-08
 * @author HaleyTiger
 */
public class CalendarTest {

    public static void main(String[] args) {
        // 設定日曆的顯示的地區(根據自己的需要寫)
Locale.setDefault(Locale.ENGLISH); // GregorianCalendar是Calendar的子類 GregorianCalendar gc = new GregorianCalendar(); int today = gc.get(Calendar.DAY_OF_MONTH); int month = gc.get(Calendar.MONTH); // 設定月份的起始日期為1 gc.set(Calendar.DAY_OF_MONTH, 1); // 獲取一週中的第幾天
int weekday = gc.get(Calendar.DAY_OF_WEEK); // 獲取一週中的第一天 int firstDayOfWeek = gc.getFirstDayOfWeek(); // 計算月份第一行的縮排數 int indent = 0;// 縮排數 while (weekday != firstDayOfWeek) { indent++; gc.add(Calendar.DAY_OF_MONTH, -1);// 日期減1 weekday = gc.get
(Calendar.DAY_OF_WEEK); } // 列印星期名 String[] weekdayNames = new DateFormatSymbols().getShortWeekdays(); do { System.out.printf("%4s", weekdayNames[weekday]); gc.add(Calendar.DAY_OF_MONTH, 1); weekday = gc.get(Calendar.DAY_OF_WEEK); } while (weekday != firstDayOfWeek); System.out.println(); // 列印日曆第一行的縮排空格 for (int i = 0; i <= indent; i++) { System.out.print(" ");// 兩個空格 } // 設定月份的起始日期為1 gc.set(Calendar.DAY_OF_MONTH, 1); // 列印日期 do { // 列印天數 int day = gc.get(Calendar.DAY_OF_MONTH); System.out.printf("%3d", day); // 用“*”標記今天 if (day == today) { System.out.print("*"); } else { System.out.print(" "); } gc.add(Calendar.DAY_OF_MONTH, 1);// 天數加1 weekday = gc.get(Calendar.DAY_OF_WEEK); // 列印一週後換行 if (weekday == firstDayOfWeek) { System.out.println(); } } while (gc.get(Calendar.MONTH) == month);// 到下個月結束 } }

這裡寫圖片描述