刚学完Calendar类花了近一个小时写出来的,脑袋比较笨,思路很简单,能完成这样已经很用心了,望各位大佬哥哥姐姐们多多指点。
/**
* 使用Calendar完成一个万年历 要求:键盘输入一个年份和月份,控制台输出当月的日历
*/
import java.util.Calendar;
import java.util.Scanner;
public class PerpetualCalendar {
public static void pringMonth(int year, int month) {
Calendar c = Calendar.getInstance(); 获取一个Calendar对象
// c.set(year, month - 1, 1); // 设置第一天
c.set(Calendar.YEAR, Calendar.MONTH); // 调用Calendar类的方法,功能同上
System.out.println("\t=============" + month + "月=============");
System.out.println("日" + "\t" + "一" + "\t" + "二" + "\t" + "三" + "\t" + "四" + "\t" + "五" + "\t" + "六");
int allday = c.getMaximum(Calendar.DATE); // 该月最大天数
int firstdayofweek = c.get(Calendar.DAY_OF_WEEK) - 1; // 设置每周的天数,令周日为0
for (int i = 0; i < firstdayofweek; i++) { // 找到该月第一天的位置
System.out.print("\t"); //第一天之前都是"\t"
}
for (int i = 1; i <= allday; i++) { //循环输出所有天数
System.out.print(i + "\t");
firstdayofweek++;
if (firstdayofweek == 7) { //判断每周天数是否为7天
firstdayofweek = 0; //是,则换行
System.out.println();
}
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入年:");
int year = sc.nextInt();
System.out.println("请输入月:");
int month = sc.nextInt();
pringMonth(year, month); //使用上面的方法
sc.close();
}
}
运行一下下
对比当前时间,运行正确