day13-Calendar日历-simpleDateFormat

一、Calendar

1.Calendar是抽象类  单例的设计模式

//单例模式 获取实例
Calendar calendar = Calendar.getInstance();

//获取某一年一共多少天   可以用来判断闰年 366天
int days = calendar.getActualMaximum(Calendar.DAY_OF_YEAR);

//获取某一年的2月有多少天
//可以先将日期设置到那年的3月1日,然后利用add()往前偏移一天
calendar.set(2000,2,1);//月份从0-11
calendar.add(Calendar.DAY_OF_MONTH,-1);//3月1日往前偏移一天

2.Calendar打印万年历(小练习)

       int year,month ;
        
        Scanner scanner = new Scanner(System.in);
        
        while(true) {
        System.out.println("请输入1900年之后的年份 如: 2018");
        year = scanner.nextInt();
        if(year<1900||year>9999) {
            System.out.println("年份输入有误,请重新输入");
            continue;
        }
        
        scanner.nextLine();
        System.out.println("请输入1-12的月份  如:10");
        month = scanner.nextInt();
        if(month<1||month>12) {
            System.out.println("月份输入有误,请重新输入");
            continue;
        }
        
        scanner.close();
        break;
        
        }
        
        Calendar calendar = Calendar.getInstance();
        // 设置到当前年月的第一天
        calendar.set(year, month - 1, 1);
    
        // 获取当前月份一共多少天
        int days = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

        // 获取当前月份的第一天是星期几       数字与实际星期差1,且老美的第一天是星期日
        int week = calendar.get(Calendar.DAY_OF_WEEK); 
            
        //前面空格的数字就是等于星期几的数字
        int spaceNum=week-1;

        System.out.println("\t\t     "+year+"年"+month+"月\r");
        //打印星期固定格式
        System.out.println("日\t一\t二\t三\t四\t五\t六");
        
        //打印1号前面的空格数
        for(int i =0;i<spaceNum;i++) {
            System.out.print("\t");
        }
        
        //打印日期数字
        for(int i =1;i<=days;i++) {
            System.out.print(i+"\t");
            //判断是否换行  前面空格数+当前日期   若是7的倍数就要换一行了
            if((spaceNum+i)%7==0) {
                System.out.println();
            }        
            
        }
    }

 运行结果:

 二、simpleDateFormat

是一个日期格式化的类--->可以实现日期格式转成字符串,字符串--->转成日期

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");//按照这个格式
        try {
            Date date =simpleDateFormat.parse("2018-07-31 21:03:05");

            System.out.println(date); //转后的日期格式输出   Tue Jul 31 21:03:05 CST 2018                         
            Date date3= new Date();  //获取了当前日期时间
            String s= simpleDateFormat.format(date3);
            System.out.println(s); //按照初始的格式输出日期字符串  2018-07-31 09:22:02

        } catch (ParseException e) {
            e.printStackTrace();
        }

 

转载于:https://www.cnblogs.com/zhiai007/p/9392860.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值