综合练习1 打印日历

综合练习1 打印日历
使用Calendar类计算并打印当前月份的日历,效果如下:

/*综合练习1 打印日历
 * 使用Calendar类计算并打印当前月份的日历,效果如下:
 * 
 * 		2021-2
 * 	日	一	二	三	四	五	六
 * 		1	2	3	4	5	6
 * 	7	8	9	10	11	12	13
 * 	14	15	16	17	18	19	20
 * 	21	22	23	24	25	26	27
 * 	28	
 * 
 * */

package cylk;

import java.util.Calendar;

public class Zhlx1 {
	public static void main(String[] args) {
		Calendar calendar = Calendar.getInstance();	//创建今天的日历对象
		StringBuilder builder = new StringBuilder();//创建字符生成器,用于记录输出内容
		int year = calendar.get(Calendar.YEAR);		//返回今天的年,数据类型为int
		int month = calendar.get(Calendar.MONTH)+1;	//返回今天的月,数据类型为int
		
		calendar.add(Calendar.MONTH,1);		//操作对象的月份加一。因为日历类的Calendar.MONTH字段从0开始,返回本月需要加1
		calendar.set(Calendar.DATE,0);		//设置对象的天数为0,即上个月的最后一天。为了接下来,获取本月的总天数。		
		int dayCount = calendar.get(Calendar.DAY_OF_MONTH);		//返回本月总天数,数据类型为int
		
		calendar.set(Calendar.DAY_OF_MONTH, 1);		//设置对象的天数为1,即本月1号。
		
		int week = calendar.get(Calendar.DAY_OF_WEEK); 		//返回本月1号的星期数,数据类型为int,1=星期日,2=星期一,以此类推
		int day = 1;//本月1号,第一天,后面用来递增输入日历

		//向字符串生成器builder中,添加内容
		builder.append("\t\t"+year+"-"+month+"\n");		//添加年月
		builder.append("日\t一\t二\t三\t四\t五\t六\n");		//添加星期标题,星期列

		//先打印日历第一行,含有空白的行
		for(int i = 1;i <= 7;i++) {
			if(i < week) {
				builder.append("\t");	//输出1号之前的空格
			} else {
				builder.append(day+"\t");
				day++;	//天数的输出
			}
		}
		builder.append("\n");	//换行
		
		//再输出日历下面几行
		int i = 1;	//变量,用于统计每行输出
		while(day <= dayCount) {
			builder.append(day + "\t");
			if(i % 7 == 0) {
				builder.append("\n");   //换行
			}
			i++;    //换行变量增加
			day++;  //天数数字增加
		}						
		System.out.println(builder);				
	}
}
运行结果如下图所示

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值