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