Java学习时间和日期

2023-12-25 15:47:14

1 常用类

? ? ? ? 1.1 Date 表示日期 具体类

? ? ? ? ? ? ? ? 设置时间?

?

? ? ? ? 1.2?Calendar 表示日历 抽象类

????????????????设置日历的设定日期

????????????????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);?

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

???????????????? getTime():返回一个Date对象 ?

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

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

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

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

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

?

? ? ? ? ? ? ? ? 练习:设计一个类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;
    }
}

文章来源:https://blog.csdn.net/axxdxzz/article/details/135199227
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。