/**
* 程序運(yùn)行當(dāng)年的日歷,程序運(yùn)行當(dāng)日以*號(hào)表示
*/
import java.util.*;
public class CalendarTest {public static void main(String[] args) {
GregorianCalendar d = new GregorianCalendar();
int year = d.get(Calendar.YEAR);
int month = d.get(Calendar.MONTH);
int today = d.get(Calendar.DAY_OF_YEAR);
d.set(d.get(Calendar.YEAR),0,1); //設(shè)置為當(dāng)年1月1日(0表示1月)
do {
System.out.println(d.get(Calendar.MONTH) + 1 + "月");
System.out.println("Sun Mon Tue Wed Thu Fri Sat"); //輸出月表頭
month = d.get(Calendar.MONTH); //取得月份
int weekday = d.get(Calendar.DAY_OF_WEEK); //獲得當(dāng)月1號(hào),在一周中是星期幾
for(int i = Calendar.SUNDAY; i < weekday; i++)//控制當(dāng)月1號(hào)的起始位置
System.out.print(" ");
do {
weekday = d.get(Calendar.DAY_OF_WEEK);
if (d.get(Calendar.DAY_OF_MONTH) < 10) //如果日期小于10,多輸出一個(gè)空格,以便對(duì)齊
System.out.print(" ");
System.out.print(d.get(Calendar.DAY_OF_MONTH));//輸出日期
if (today == d.get(Calendar.DAY_OF_YEAR)) //如果是當(dāng)日,則輸出一個(gè)*號(hào)
System.out.print("* ");
else
System.out.print(" ");
if (weekday == Calendar.SATURDAY) //到達(dá)周六,則換行
System.out.println();
d.add(Calendar.DAY_OF_YEAR,1); //日期累加
} while (d.get(Calendar.MONTH) == month); //如果還是當(dāng)月,繼續(xù)循環(huán)
System.out.println("\n");
} while (d.get(Calendar.YEAR) == year); //如果還是當(dāng)年,繼續(xù)循環(huán)
}
}