根據命令行輸入月份及年份打印日曆
格式及結果
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);//日曆增長一天
}
}
}