Java输出日历

使用键盘输入日期,输出当月日历

public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入日期,比如:2021-06-18");
        String strDate = sc.next();//接收用户输入的日期
        //System.out.println("日期是:" + strDate);//输出日期
        System.out.println("日\t一\t二\t三\t四\t五\t六");
        java.sql.Date date = java.sql.Date.valueOf(strDate);//将字符串日期strDate转换成java.sql.Date
        Calendar calendar = Calendar.getInstance();//声明日历类,方式一
        //Calendar calendar = new GregorianCalendar();//声明日历类,方式二
        calendar.setTime(date);//设置日期
        //System.out.println(calendar);
        int maxDate = calendar.getActualMaximum(Calendar.DATE);//获取当月最大天数,比如6月有30天,7月有31天
        int day = calendar.get(Calendar.DATE);//获取当前日
        calendar.set(Calendar.DATE, 1);//设置当前日为1号
        int num = calendar.get(Calendar.DAY_OF_WEEK);//获取1号是一周中的第几天,比如周日是一周中的第1天
        int count = num - 1;//计数器,每7天输出换行,包括输出的空区域num-1
        for (int i = 1; i < num; i++) {
            //输入num个空区域,比如1号是第一周的中的第3天,则1号是周二,前面应该输出2个空区域
            System.out.print("\t");
        }
        for (int i = 1; i <= maxDate; i++) {
            if (day == i) {//如果是当前日,则用*标注
                System.out.print(i + "*\t");
            } else {
                System.out.print(i + "\t");
            }
            count++;
            if (count % 7 == 0) {
                //count计数器,每7个换行
                System.out.println();
            }
        }
    }

输出结果

请输入日期,比如:2021-06-18
2021-07-18
日	一	二	三	四	五	六
				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	29	30	31		
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值