Calendar案例(Calendar<->String<->Date互相转换)根据日期生成日历

分享一个自己学习日期类的小案例,根据输入的日期,生成日历。

主要是Calendar、String、Date之间的互相转换

先看一下运行效果,自己输入一个指定的日期,会在控制台打印一个日历,和官方的日历是一样的。

 话不多说,直接上源码:


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

//根据输入的日期,打印日历
public class CalendarTest {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入要查看的日期:(提示:请按照1999-11-26的日期格式)");
        String strDate = sc.next();

        //String ---> Calendar要下面两步:

        //String ---> Date
        java.sql.Date date = java.sql.Date.valueOf(strDate);
        //Date ---> Calendar
        //getInstance()获取使用默认时区和区域设置的日历。 返回一个Calendar对象
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);//通过传入的Date值设置Calendar的时间

        System.out.println("日\t一\t二\t三\t四\t五\t六");//星期提示

        //获取本月最大的天数
        int maxDay = cal.getActualMaximum(Calendar.DATE);
        int count = 0;
        int day = cal.get(Calendar.DATE);//获取当前日期的日
        cal.set(Calendar.DATE,1);//讲日期调为本月的1号
        int numDay = cal.get(Calendar.DAY_OF_WEEK);//获取这个1号时本周的第几天
        int kongDay = numDay - 1;//日历第一行前面空出来的天数
        for (int i = 1; i <= kongDay; i++) {
            System.out.print("\t");
        }
        count = count+kongDay;
        for (int i = 1; i <= maxDay ; i++) {
            if (i==day){
                System.out.print(i+"*"+"\t");
            }else {
                System.out.print(i+"\t");
            }
            count++;
            if (count % 7 == 0){
                System.out.println();
            }
        }
    }
}

第一次看可能会有一点蒙,试着跟着思路多去敲几次,慢慢的就可以知道为什么是这样的,一定多敲,不说把键盘敲烂那么夸赞,至少熟能生巧是真的!

快来一起收藏了练习吧~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java+每天进步亿点点

一起学习一起进步一起高薪

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值