Java用Calender类型,打印日历详解

本文详细指导如何使用Java Calendar类实现个性化日历打印,包括设置月份、计算首日星期和空格调整,适合初学者理解日期逻辑。

Java用Calender类型,打印日历详解

首先我们要明白:

1.系统的每个星期的第一天是星期日

  1. Calendar calendar = Calendar.getInstance();返回calender抽象类的子类对象(这里用到了多态)
  2. 返回的weekday需要减1才是中国的星期
  3. 月份也是如此,我们所使用的是1-12月,但是系统是0-11月,返回时需要减1
  4. 计算每个月第一天是星期几,打印空格个数根据自己需要的格式打印
package com.ping.demo02.homework;

import com.sun.org.apache.xpath.internal.SourceTree;

import java.util.Calendar;
import java.util.Scanner;

public class MyTest {

    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入想要查询的月份: ");
        int month = sc.nextInt();
        calendar.set(2021, month - 1, 1);
        System.out.println("星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t星期日");
        int weekday = calendar.get(Calendar.DAY_OF_WEEK);//系统在时间为一个星期的第五天,实际上是星期4
        for (int i = 0; i < weekday -2; i++) {//打印前面三天的空格
            System.out.print("\t \t");
        }
        for (; calendar.get(Calendar.MONTH) == month - 1;) {        //从第一天开始遍历
            System.out.print(" " + calendar.get(Calendar.DAY_OF_MONTH) + "\t \t");
            calendar.add(Calendar.DAY_OF_MONTH, 1);         //碰到周日要换行,为第一天1
            if (calendar.get(Calendar.DAY_OF_WEEK ) == 2){          //但是经过加1的操作,则在2的时候换行
                System.out.println();
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值