温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java 使用Date类和DateFormat抽象类和Calendar抽象类实现日历

发布时间:2020-05-19 08:31:28 来源:网络 阅读:218 作者:wx5d21d5e6e5ab1 栏目:编程语言

版本一:

输入时间字符串形成日历

思路:将字符串按照指定字符串格式形成时间类,再将时间类转换成日期类

    String s="2019-7-7";          //创建字符串
    DateFormat it =new SimpleDateFormat("yyyy-MM-dd");  //构造方法指定日期格式
    Date d=it.parse(s);                                                  //通过SDF实例方法parse构造时间类

    Calendar c= new GregorianCalendar();                       //构造日期类对象
    c.setTime(d);                                                               //通过方法将时间类转换成日期类
    c.set(Calendar.DAY_OF_MONTH,1);                         //将日期号置为1,并且该月的所元素都是1

    System.out.println("日\t一\t二\t三\t四\t五\t六");

    #System.out.println(c.get(Calendar.DAY_OF_WEEK))       //打印,输入的日期号是星期几
                                                                                                                                                                                //1是星期天,2是星期6
    for(int i=0;i<c.get(Calendar.DAY_OF_WEEK)-1;i++)     
    //因为号已重置为1,故为实现第一                                                                                            天在星期几之前打印的制表符个数
    {
        System.out.print("\t");
    }

    int max=c.getActualMaximum(Calendar.DATE);            //得到本月天数
    for(int i=1;i<=max;i++)           //c.getActualMaximum(Calendar.DATE)  得到输入字符串日期的月份的天数 //不在循环条件内放入方法求本月天数是因为,如果是6月30天,循环内最后一个语句将会+1,变成了7月,循环条件变成了<=31,会多打印一次                        
    {
        System.out.print(c.get(Calendar.DAY_OF_MONTH)+"\t"); 
            if(c.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY)  //如果号等于星期六,即6,换行
        {
            System.out.println();
        }

        c.add(Calendar.DAY_OF_MONTH, 1);    //使用Calendar加法方法是号每次循环+1
    }
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI