public class Demo(){
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print("输入年份(格式:yyyy):");
int year = input.nextInt();
System.out.print("输入月份(格式:MM):");
int month = input.nextInt();
input.close();
//实例化一个当前的日历对象
Calendar calendar = Calendar.getInstance();
//设置对象的年、月、 日
calendar.set(Calendar.YEAR , year);
calendar.set(Calendar.MONTH , month);
//将输入月份的第一天始终设置为第一天
calendar.set(Calendar , DAY);
//得到每月第一天是日历中一行(日\t一\t二\t三\t四\t五\t六)中的位置
int weekFirstDay = calendar.get(Calendar.DAY_OF_MOTH);
int count =0 ;
System.out.println(日\t一\t二\t三\t四\t五\t六);
//打印出每月第一天前的空格
while(count < weekFirstDay - 1){
count++;
}
for( int i = 1 ; i < =calendar.getActualMaxmum(Calendar.DATE) ;
i ++ , count ++)){
if(i % count == 0 ){
System.out.println();
}
System.out.println(i+"\t");
}
分析:
1、确定这个一号之前有几个空格
2、确定输入月份的最大日期
最大值:
getActualMaxmum()和getMaxmum()之间的区别
calendar.getActualMaxmum(int field) //时间日期类中 动态的最大日期数
calendar.getMaxmum(int field);返回此 Calendar 实例给定日历字段的最大值。(始终是当前时间的最大值)
}
}
大家有方法都可以分享出来 大家一起学习