3.Calendar

public static void main(String[] args) {
        // Calendar 是一个抽象类,不可以直接创建对象
        // GregorianCalendar(子类) extends Calendar(父类)
        Calendar cal = new GregorianCalendar();

        //创建方式2:
        Calendar cal2 = Calendar.getInstance();
        //System.out.println(cal);

        // 常用的方法:
        // get 方法,传入参数:Calendar中定义的常量
        System.out.println(cal.get(Calendar.YEAR));
        System.out.println(cal.get(Calendar.MONTH)+1);// 月份要+1
        System.out.println(cal.get(Calendar.DATE));
        System.out.println(cal.get(Calendar.DAY_OF_WEEK));// 星期要减1
        System.out.println(cal.getActualMaximum(Calendar.DATE));// 获取当月日期的最大天数
        System.out.println(cal.getActualMinimum(Calendar.DATE)); // 获取当月日期的最小天数

        // set方法:
        cal.set(Calendar.YEAR,2015);
        cal.set(Calendar.MONTH,3);
        cal.set(Calendar.DATE,16);
        System.out.println(cal);

        //String --> Calendar:
        // 分解:
        //String --> java.sql.Date:
        java.sql.Date date = java.sql.Date.valueOf("2022-03-18");
        //java.sql.Date --> Calendar:
        cal.setTime(date);// 这时cal被date转为新日期了
        System.out.println(cal);
    }

总结:Date日期类   Calendar日历类   SimpleDateFormat格式转换

练习:

 

public static void main(String[] args) {
        //录入日期的String
        Scanner sc= new Scanner(System.in);
       System.out.println("请输入你想要查看的日期:(提示:请按照例如:2022-3-18的格式书写):");
       String strDate=sc.next();
        //System.out.println(strDate);

        //String ---> Calendar:
        //先将String-->Date:
        java.sql.Date date = java.sql.Date.valueOf(strDate);
        // 再将Date --> Calendar:
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);

        // 后续操作:
        // 星期提示
        System.out.println("日\t一\t二\t三\t四\t五\t六\t");
        //获取本月的最大天数
        int maxDay=cal.getActualMaximum(Calendar.DATE);
        //System.out.println(maxDay);

        //获取当前日期的日:
        int today=cal.get(Calendar.DATE);

        //将日期调为本月的1号:
        cal.set(Calendar.DATE,1);

        //获取这个1号是本周的第几天
        int num = cal.get(Calendar.DAY_OF_WEEK);
       // System.out.println(num);
        //前面空出来的天数为:
        int day = num-1;

        // 引入一个计数器
        int count=0;//计数器最开始值为0

        // 在日期前将空格打印出来:
        for (int i=1;i<=day;i++){
            System.out.print("\t");
        }

        //空出来的日子也要放入计数器:
        count+=day;

        //遍历 :从1号开始到maxDay号进行遍历:
        for (int i=1;i<=maxDay;i++){
            if (i==today){  //如果遍历的i和当前日子一样的话,后面多拼一个*
                System.out.print(i + "*" + "\t");
            }else{
                System.out.print(i + "\t");
            }
            count++;    // 每在控制台输出一个数字,计数器做加1操作
            if (count%7==0){    //当计数器的个数是7的倍数的时候 就换行操作
                System.out.println();
            }
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值