输入指定年月,打印该月日历运行效果如下:
public class Practise {
/**
* 打印某年某月的日历 author:wangpeng time:2018年8月9日下午4:15:05
*/
@Test
public void test2() {
Calendar c=input();
if(c==null) {
return;
}
System.out.println("日\t一\t二\t三\t四\t五\t六");
int start=c.get(Calendar.DAY_OF_WEEK);
//System.out.println(start);
for(int i=0;i<start-1;i++) {
System.out.print(" \t");
}
for(int i=start;i<(c.getActualMaximum(Calendar.DAY_OF_MONTH))+start;i++) {
System.out.print((i-start+1)+"\t");
if(i%7==0)
System.out.println();
}
}
public Calendar input() {
Scanner in = new Scanner(System.in);
int year = 0;
int mon = 0;
Calendar c = Calendar.getInstance();
while(true) {
System.out.println("输入年份:");
String strYear = in.next();
System.out.println("输入月份:");
String strMon = in.next();
if (strYear.matches("\\d+") && strMon.matches("\\d+")) {
year = Integer.parseInt(strYear);
mon = Integer.parseInt(strMon);
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, mon-1);
c.set(Calendar.DATE, 1);
break;
} else {
System.out.println("输入有误,请重新输入");
}
}
System.out.println(year + "年" + mon + "月" + "日历如下:");
return c;
}
}