栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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();
            }
        }
    }
}

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

快来一起收藏了练习吧~

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/685049.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号