LocalDate 基础
本课属于 Coddy Java 学习旅程的“逻辑与流程”单元。第 54 课,共 59 课。
Java 中的 LocalDate 表示不包含时间或时区的日期。它用于处理生日、节假日或日程等日期。
创建今天的日期:
LocalDate today = LocalDate.now();创建一个特定日期:
LocalDate date = LocalDate.of(2024, 3, 15);运行上述代码后,date 包含:2024-03-15
获取日期的不同部分:
LocalDate date = LocalDate.of(2024, 3, 15);
int year = date.getYear(); // 2024
int month = date.getMonthValue(); // 3
int day = date.getDayOfMonth(); // 15
String dayOfWeek = date.getDayOfWeek().toString(); // "FRIDAY"从字符串解析日期:
LocalDate date = LocalDate.parse("2024-03-15"); // 格式:"yyyy-MM-dd"重要:如果字符串格式无效,parse() 会抛出 DateTimeParseException。使用 try-catch 来处理:
try {
LocalDate date = LocalDate.parse("invalid-date");
} catch (DateTimeParseException e) {
System.out.println("Invalid date format");
}增加或减去天数:
LocalDate date = LocalDate.of(2024, 3, 15);
LocalDate future = date.plusDays(10); // 2024-03-25
LocalDate past = date.minusDays(5); // 2024-03-10运行上述代码后:
future:2024-03-25past:2024-03-10
挑战
简单创建一个名为 processDate 的方法,它接受三个参数:
- 一个格式为 "yyyy-MM-dd" 的字符串(
dateStr) - 一个用于增加或减少天数的整数(
days) - 一个值为 "add" 或 "subtract" 的字符串(
operation)
该方法应:
- 解析输入的日期字符串
- 增加或减少指定的天数
- 返回格式化后的结果信息
返回的消息应为:
- 如果日期格式无效:返回 "Invalid date format"
- 如果操作无效:返回 "Invalid operation"
- 成功时:返回 "Original: [date], New: [new_date], Day of week: [day_name]",其中 [day_name] 是新日期对应的星期几,使用大写字母表示(例如
WEDNESDAY)
亲手试试
import java.util.Scanner;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
public class Main {
public static String processDate(String dateStr, int days, String operation) {
// 在这里编写你的代码
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String dateStr = scanner.nextLine();
int days = Integer.parseInt(scanner.nextLine());
String operation = scanner.nextLine();
System.out.println(processDate(dateStr, days, operation));
}
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: Java 在线编译器