使用Calendar 将当月日历打印出来

时间:2022-03-07 21:04:13
package com.date;

import java.text.DateFormatSymbols;
import java.util.Calendar; import org.junit.Test; public class CalendarTest {
/**
* 打印当前月的日历
*/
@Test
public void test1(){ // GregorianCalendar d = new GregorianCalendar();
Calendar d = Calendar.getInstance();
// 获取 当前 日 和月
int today = d.get(Calendar.DAY_OF_MONTH);
int month = d.get(Calendar.MONTH); // System.out.println(day+"\n"+month); //设置当前时间为 本月第一天
d.set(Calendar.DAY_OF_MONTH, 1);
//获取这一天是星期几
int weekday = d.get(Calendar.DAY_OF_WEEK); //获取当前地区 一周的第一天是星期几
int firstDayOfWeek = d.getFirstDayOfWeek(); // System.out.println(weekday+"\n"+firstDayOfWeek); //补充当前月 第一个星期中的 缩进的天数
int indent =0;
while(weekday!=firstDayOfWeek){
indent ++;
d.add(Calendar.DAY_OF_MONTH, -1);
weekday = d.get(Calendar.DAY_OF_WEEK);
} //打印星期
String[] weekdayNames = new DateFormatSymbols().getShortWeekdays();
// System.out.println(Arrays.asList(weekdayNames).toString());
do{
System.out.printf("%4s",weekdayNames[weekday]);
d.add(Calendar.DAY_OF_MONTH, 1);
weekday = d.get(Calendar.DAY_OF_WEEK);
}while(weekday!=firstDayOfWeek); System.out.println(); //将第一行 缩进的星期 空出来
for(int i=0;i<indent;i++){
System.out.print(" ");
}
d.set(Calendar.DAY_OF_MONTH, 1); do{
// 打印 天
int day = d.get(Calendar.DAY_OF_MONTH);
System.out.printf("%3d",day); //标记当前 天
if(day == today){
System.out.print("*");
}else{
System.out.print(" ");
} //继续下一天
d.add(Calendar.DAY_OF_MONTH, 1);
weekday = d.get(Calendar.DAY_OF_WEEK); //遇到 星期开始 ,换行
if(weekday==firstDayOfWeek) System.out.println(); }while(d.get(Calendar.MONTH) == month); }
}

结果:

  aaarticlea/png;base64,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" alt="" />