万年历------Calendar实现

/*
*主要考察了Calendar类中的一些方法的用法,和遍历时所用的一些常用手法!
*/

public class WanYearLi {
	public static void main(String[] args) {
		String []week = {" ","星期天","星期一","星期二","星期三","星期四","星期五","星期六"}; 
		Calendar c = Calendar.getInstance();
	
		System.out.println("请输入你要输入的年:");
		int Syear = new Scanner(System.in).nextInt();
		System.out.println("请输入你要输入的月:");
		int Smonth = new Scanner(System.in).nextInt();		
		
		
		
		//因为month是0-11所有Smonth是后一月 你输的是3月 默认是4月
		c.set(Syear,Smonth,1);//把你的年份和月份传进去,这是你输的后一月的第一天
		c.add(Calendar.DATE,-1);//这是你输入的月份的最大天数
		int maxmonth = c.get(Calendar.DATE);
		System.out.println(c.get(Calendar.DATE));//输出你要的月份的最大天数
		
		
		c.set(Syear,Smonth-1,1);//初始化
		int dayWeek = c.get(Calendar.DAY_OF_WEEK);//得出一个月中第一天是星期几
		
		System.out.println("-----------------");
		System.out.println(dayWeek);//输出星期几 验证一下
		
		//打印week数组  星期天  星期一  星期二  星期三  星期四  星期五  星期六
		for(int i =1;i<week.length;i++) {
			System.out.print(week[i]+"\t");
		}
		System.out.println();	
	//声明一个变量 打印万年历时前面的空格做准备
		int z = 1;
		//遍历一月中的天数
		for(int j =1;j<=maxmonth;z++) {
			if(z<dayWeek) {
				System.out.print(" "+"\t");
			}else {
				System.out.print(j+"\t");
				j++;
				if(z%7==0) {
					System.out.println();
				}
			}
		}
	}
}

猜你喜欢

转载自blog.csdn.net/mswuxianshen/article/details/81348557