Java学习时间和日期

1 常用类

        1.1 Date 表示日期 具体类

Java学习时间和日期_第1张图片

                设置时间 

Java学习时间和日期_第2张图片

 

        1.2 Calendar 表示日历 抽象类

Java学习时间和日期_第3张图片

                设置日历的设定日期

                void set(int year,int month,int date);

                void set(int year,int month, int date,   int hour, int minute,int second);

                void setTime(Date d); 

Java学习时间和日期_第4张图片

                int get(int field):可以获取有关年份、月份、小时、星期等信息,参数field的有效值由Calendar的静态常量指定,例如:calendar.get(Calendar.MONTH);

                 getTime():返回一个Date对象  

                getTimeInMillis():返回长整数,表示距离1970年1月1日零时零分零秒的毫秒数 

Java学习时间和日期_第5张图片

                add(int  field, int amount):增加field指定的年份、月份、小时等数量

                 before(Object o):是否在某日期之前

                after(Object o):是否在某日期之后 

                compareTo(Calandar a):与另一日历日期比较: 相等返回0; after a返回1; before a返回-1

 

Java学习时间和日期_第6张图片

Java学习时间和日期_第7张图片

                练习:设计一个类Test 包含一个方法int getDayOFWeek(String date) 返回用户输入日期是个周几,例如用户输入2023.12.22返回“5”。要求:用户输入的日期格式满足年月日的顺序,但是用户输入可能会不规范,可能是2023-1-12,也可能是2023年10月9日。无论用户如何输入,只要符合年月日的顺序即可得出结果。

测试 Result
Test test=new Test();
System.out.println(test.getDayOfWeek("2023/12/22"));
5
Test test=new Test();
System.out.println(test.getDayOfWeek("2023.1.11"));
3

 

class  Test {
    String getDayOfWeek(String date) {
        String cleanedDate = date.replaceAll("[^\\d]", "");
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        try {
            Date parsedDate = sdf.parse(cleanedDate);
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(parsedDate);

            int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
            if (dayOfWeek == Calendar.SUNDAY) {
                dayOfWeek = 7;
            } else {
                dayOfWeek -= 1;
            }

            return String.valueOf(dayOfWeek);
        } catch (Exception e) {
            e.printStackTrace();
        }
return null;
    }
}

你可能感兴趣的:(java练习题,学习,java)