根据命令行输入月份及年份打印日历
格式及结果
C:\> java Cal 10 2019
October 2019
Su Mo Tu We Th Fr Sa
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 31
代码
import java.util.Calendar;
import java.util.Locale;
public class Cal {
public static void main(String args[]){
Calendar c=Calendar.getInstance();
c.set(Integer.parseInt(args[1]),Integer.parseInt(args[0])-1,1);//从命令行获取月,年来设置日历实例
System.out.println(c.getDisplayName(Calendar.MONTH,Calendar.LONG, Locale.CANADA)+" "+c.get(Calendar.YEAR));//打印月份和年份
System.out.println("Su Mo Tu We Th Fr Sa");
for(int i=1;i<c.get(Calendar.DAY_OF_WEEK);i++)//根据第一天的是星期几打印前面的空白
System.out.print(" ");
int month=c.get(Calendar.MONTH);//保存当前月份
int counter=1;//天计数器
while(c.get(Calendar.MONTH)==month){//月份改变就退出
System.out.printf("%2d ",counter);//格式打印
if(c.get(Calendar.DAY_OF_WEEK)==7)//星期六打印回车
System.out.println();
counter++;//计数器递增
c.add(Calendar.DATE,1);//日历增长一天
}
}
}