利用Calendar简洁制作万年历

public class WanNianLi {

	@Test
	public void test1() {
		Scanner sc = new Scanner(System.in);
		while (true) {
			System.out.println("年:");
			int year = sc.nextInt();
			System.out.println("月:");
			int month = sc.nextInt();
			WanNianLi w = new WanNianLi();
			w.wnl(year, month);
		}
	}

//	@Test
//	public void test() {
//		//分析过程
//		System.out.println("一\t二\t三\t四\t五\t六\t日");
//		Calendar c = Calendar.getInstance();// 获得一个Calendar的实例,系统当前时间
//		c.set(Calendar.MONTH, 8);// 设置日期
//		c.set(Calendar.DATE, 1);
//		System.out.println(c.get(Calendar.YEAR));
//		System.out.println(c.get(Calendar.MONTH) + 1);
//		System.out.println(c.get(Calendar.DATE));
//		System.out.println("当月总天数:" + c.getActualMaximum(Calendar.DATE));
//		System.out.println(c.get(Calendar.DAY_OF_WEEK));
//
//	}

	public void wnl(int year, int month) {
		System.out.println("一\t二\t三\t四\t五\t六\t日");
		Calendar c = Calendar.getInstance();// 既是当前时间,同时也是一个Calendar实例;
		c.set(Calendar.YEAR, year);
		c.set(Calendar.MONTH, month - 1);
		c.set(Calendar.DATE, 1);// 1日
		int djt = c.get(Calendar.DAY_OF_WEEK);// 当前日期是本周第几天
		int kg = djt == 1 ? 6 : djt - 2;// 空格个数
		// 星期-空格数 第几天
		// 1-0 2
		// 2-1 3
		// 3-2 4
		// 7-6 1
		// 空格:本月1日的星期有关
		int n = 0;// 计算是否换行
		for (int i = 1; i <= kg; i++) {
			System.out.print("\t");
			n++;
		}
		int zts = c.getActualMaximum(Calendar.DATE);// 本月总天数
		// 数字1--?本月的总天数;换行
		for (int i = 1; i <= zts; i++) {
			System.out.print(i + "\t");
			n++;
			if (n % 7 == 0)
				System.out.println();
		}
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值