/**
?? @version 1.30 2000-03-27
?? @author Cay Horstmann
*/
import java.util.*;
public class CalendarTest
{?
?? public static void main(String[] args)
?? {?
????? // 首先構(gòu)造一個日歷對象,把它初始化為當(dāng)前的日期和時間.
????? GregorianCalendar d = new GregorianCalendar();
????? int today = d.get(Calendar.DAY_OF_MONTH);//得到當(dāng)前的日期
????? int month = d.get(Calendar.MONTH);//得到當(dāng)前的月份
????
????? d.set(Calendar.DAY_OF_MONTH, 1); // 設(shè)置d為當(dāng)前的這個月的第一天
????? int weekday = d.get(Calendar.DAY_OF_WEEK); //得到這一天是星期幾,如果是星期天的話,weekday被設(shè)置為1,依次類推
????? System.out.println("Sun Mon Tue Wed Thu Fri Sat");? // 打印標(biāo)題頭和空格作為第一行
????
????? for (int i = Calendar.SUNDAY; i < weekday; i++ )//找到第一天對應(yīng)的星期幾的位置
???????? System.out.print("??? ");
????? do
????? {?
????????
???????? int day = d.get(Calendar.DAY_OF_MONTH);//因為前面設(shè)置了d為當(dāng)前月的第一天,所以第一次循環(huán)中day為1
????????
???????? if (day < 10) System.out.print(" ");//如果天小于10,就打印一個空格,然后打印天。
???????? System.out.print(day);
???????? if (day == today)//如果這天是當(dāng)然就在后面打印個*
??????????? System.out.print("* ");
???????? else
??????????? System.out.print("? ");
????????
???????? if (weekday == Calendar.SATURDAY)// 如果是星期6就在后面進(jìn)行換行
??????????? System.out.println();
????????
???????? d.add(Calendar.DAY_OF_MONTH, 1);// 然后,我們讓d指向下一天
???????? weekday = d.get(Calendar.DAY_OF_WEEK);//上一句代碼設(shè)置了為下一天的日期,所以這個weekday為下一天的星期幾
????? }
????? while (d.get(Calendar.MONTH) == month);//如果d在當(dāng)月中就保持循環(huán)
?????
????
????? if (weekday != Calendar.SUNDAY) // 打印最后的行
???????? System.out.println();
?? }
}
結(jié)果輸出:
Sun Mon Tue Wed Thu Fri Sat
??????????? ? 1?? ?2? ? 3??? 4
??5???? ??6??????? 7?????? ?8????9????10* 11
?12?????13???? ?14? ??? 15??16? 17? 18
19????? 20???? ?21?? ?? 22??23??24? 25
26??? ? 27??? ? 28??? ??29? 30
posted on 2006-11-10 17:30
matthew 閱讀(286)
評論(0) 編輯 收藏 所屬分類:
閱讀筆記