GregorianCalendar类的应用——当前月日历打印

  • Post author:
  • Post category:其他





GregorianCalendar类的应用——当前月日历打印





1


import


java.text.DateFormatSymbols;



2


import


java.util.Calendar;



3


import


java.util.GregorianCalendar;



4


import


java.util.Locale;



5





6


public




class


CalenderTest {




7





8




/**





9


* 本程序是打印一个当前月历的示例



10


*



11


* @Version 1.6 2009/10/7



12


*


@author


Eduardo



13




*/





14




public




static




void


main(String[] args) {




15




//


将本地区设置为美国地区,为了输出英文星期格式





16


Locale.setDefault(Locale.US);



17




//


构造一个日历对象





18


GregorianCalendar d


=




new


GregorianCalendar();



19





20




int


today


=


d.get(Calendar.DAY_OF_MONTH);


//


today为获取当前的日





21




int


month


=


d.get(Calendar.MONTH);


//


month为获取当前的月



22




//


将d设置为本月1号





23


d.set(Calendar.DAY_OF_MONTH,


1


);



24





25




int


weekday


=


d.get(Calendar.DAY_OF_WEEK);


//


weekday为获取本月1号为星期几



26




//


firstDayOfWeek为获取本地区的起始日





27




int


firstDayOfWeek


=


d.getFirstDayOfWeek();



28





29




/*


进行缩进,将日历对象的日减一,知道一个星期的第一天位置


*/





30




int


indent


=


0


;


//


记录缩进几次





31




while


(weekday


!=


firstDayOfWeek)



32


{




33


indent


++


;



34


d.add(Calendar.DAY_OF_MONTH,





1


);


//


当前日期提前一天





35


weekday


=


d.get(Calendar.DAY_OF_WEEK);


//


获取当前日期为星期几





36


}



37





38




/*


打印星期缩写字符串


*/





39


String[] weekdayNames


=


new


DateFormatSymbols().getShortWeekdays();


//


输出表示星期的方式为缩写





40




do





41


{




42


System.out.printf(





%4s





,weekdayNames[weekday]);



43


d.add(Calendar.DAY_OF_MONTH,


1


);


//


日期增1移动





44


weekday


=


d.get(Calendar.DAY_OF_WEEK);


//


获取当前日期为星期几





45


}



46




while


(weekday


!=


firstDayOfWeek);



47


System.out.println();



48





49




/*


本月1号前的日期补位空格


*/





50




for


(


int


i


=


1


;i


<=


indent;i


++


)



51


System.out.print(










);



52





53




/*


进行打印日期,当日日期后用*注释,直到d进入下一个月停止打印


*/





54


d.set(Calendar.DAY_OF_MONTH,


1


);


//


将d设置为本月1号





55




do





56


{




57




int


day


=


d.get(Calendar.DAY_OF_MONTH);



58


System.out.printf(





%3d





, day);



59





60




if


(day


==


today)System.out.print(





*





);



61




else


System.out.print(










);



62





63


d.add(Calendar.DAY_OF_MONTH,


1


);



64


weekday


=


d.get(Calendar.DAY_OF_WEEK);



65




if


(weekday


==


firstDayOfWeek)System.out.println();


//


weekday为星期的第一天则换行打印





66


}



67




while


(d.get(Calendar.MONTH)


==


month);



68





69




if


(weekday


!=


firstDayOfWeek)System.out.println();



70





71


}



72





73


}



74



版权声明:本文为pthill原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。