java的日期类和随机数类的使用。作业:根据输入的日期打印日历

java的日期类和随机数类的使用

直接上代码

Date+SimpleDateFormat

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateDemo01 {
    public static void main(String[] args) {
        Date date = new Date();
        //获取1970的时间搓单位毫秒
        long time = date.getTime();
        //日期格式化的样式
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        String format = simpleDateFormat.format(date);
        System.out.println(format);
        try {
            //根据字符串获取Date类
            Date parse = simpleDateFormat.parse("2020-04-12");
            format = simpleDateFormat.format(parse);
            System.out.println(parse);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

SimpleDateFormat参数字母的含义
G ——年代标志符
y ——年
M ——月
d ——日
h ——时 在上午或下午 (1~12)
H ——时 在一天中 (0~23)
m—— 分
s ——秒
S ——毫秒
E—— 星期
D 一年中的第几天
F 一月中第几个星期几
w 一年中第几个星期
W 一月中第几个星期
a ——上午 / 下午 标记符
k ——时 在一天中 (1~24)
K ——时 在上午或下午 (0~11)
z ——时区

calendar+GregorianCalendar

Date很多是方法多被calendar取代了。

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

public class CalendarDemo {
    public static void main(String[] args) {
        Date date = new Date();
        Calendar calendar = new GregorianCalendar();
        //初始化。默认是当前时间,当前时间可不设
        calendar.setTime(date);
        //年
        System.out.println(calendar.get(Calendar.YEAR));
        //月 用0-11代表十二个月份。就零是一月。。。。
        System.out.println(calendar.get(Calendar.MONDAY)+1);
        //今天是多少号
        System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
        //本月有多少天
        System.out.println(calendar.getActualMaximum(Calendar.DATE));
        //获取星期数。1-7->日-六
        System.out.println(calendar.get(Calendar.DAY_OF_WEEK));
        //时
        System.out.println(calendar.get(Calendar.HOUR_OF_DAY));
        //分
        System.out.println(calendar.get(Calendar.MINUTE));
        //秒
        System.out.println(calendar.get(Calendar.SECOND));
        //毫秒
        System.out.println(calendar.get(Calendar.MILLISECOND));
        System.out.println("================================");
        //设置就set。获取就get。可以类比
        //设置号数
        calendar.set(Calendar.DAY_OF_MONTH,5);
        //今天是多少号
        System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
        //获取星期数。1-7->日-六
        System.out.println(calendar.get(Calendar.DAY_OF_WEEK));
    }
}

Random

import java.util.Random;

public class RandomDemo {
    public static void main(String[] args) {
        Random rand = new Random();
        //随机生成[0,1)之间的double类型的数据
        System.out.println(rand.nextDouble());
        //随机生成int类型允许范围之内的整型数据
        System.out.println(rand.nextInt());
        //随机生成[0,1)之间的float类型的数据
        System.out.println(rand.nextFloat());
        //随机生成false或者true
        System.out.println(rand.nextBoolean());
        //随机生成[0,10)之间的int类型的数据
        System.out.println(rand.nextInt(10));
        //随机生成[20,30)之间的int类型的数据
        System.out.println(20 + rand.nextInt(10));
        //随机生成[20,30)之间的int类型的数据(此种方法计算较为复杂)
        System.out.print(20 + (int) (rand.nextDouble() * 10));
    }
}

作业

根据输入的日期打印日历。就用户输入了2020-04-13.会打印出04月的日历

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;

public class CalendarDemo02 {
    public static void main(String[] args) {
        System.out.println("输入日期-格式yyyy-MM-dd->如:2020-04-12");
        Scanner scanner = new Scanner(System.in);
        String time = scanner.next();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        Date date=null;
        try {
            date = simpleDateFormat.parse(time);
        } catch (ParseException e) {
            System.out.println("输入有误");
        }
        Calendar calendar = new GregorianCalendar();
        calendar.setTime(date);
        //记录用户输入的号数
        int day = calendar.get(Calendar.DAY_OF_MONTH);
        //重第一天开始打印
        calendar.set(Calendar.DAY_OF_MONTH,1);
        //获取一号是星期几
        int week = calendar.get(Calendar.DAY_OF_WEEK);
        //获取当前月有多少天
        int days = calendar.getActualMaximum(Calendar.DATE);
        //打印日历头
        System.out.println("日\t一\t二\t三\t四\t五\t六");
        //如果一号不是星期日就打印空格
        for (int i = 1; i <week; i++) {
            System.out.print("\t");
        }
        //开始打印
        for (int i = 1; i <=days; i++) {
            //如果是用户输入的天数
            if(i==day){
                System.out.print("*"+i+"\t");
            }else{
                System.out.print(i+"\t");
            }
            //如果打印了了周六就换行
            if(calendar.get(Calendar.DAY_OF_WEEK)==7){
                System.out.println();
            }
            calendar.set(Calendar.DAY_OF_MONTH,i+1);
        }
    }
    //控制台
    //输入日期-格式yyyy-MM-dd->如:2020-04-12
    //2020-04-15
    //日	一	二	三	四	五	六
    //			    1	2	3	4	
    //5	    6	7	8	9	10	11	
    //12	13	14	*15	16	17	18	
    //19	20	21	22	23	24	25	
    //26	27	28	29	30	
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值