LocalTime 操作
本课属于 Coddy Java 学习旅程的“逻辑与流程”单元。第 55 课,共 59 课。
Java 中的 LocalTime 表示不带日期或时区的时间。它适用于处理一天中的时间值,例如营业时间或日程安排。
创建当前时间:
LocalTime now = LocalTime.now();创建一个特定时间:
LocalTime time = LocalTime.of(14, 30);
// 14:30(下午 2:30)执行上面的代码后,time 中包含:
14:30
增加或减少时间:
LocalTime time = LocalTime.of(14, 30);
LocalTime later = time.plusMinutes(45); // 15:15
LocalTime earlier = time.minusHours(1); // 13:30从 HH:mm 格式的字符串中解析时间:
LocalTime time = LocalTime.parse("14:30"); // 14:30无效的时间字符串,例如 "25:70",会使 parse() 抛出 DateTimeParseException,这与 LocalDate.parse() 抛出的异常相同。使用 try-catch 捕获它:
try {
LocalTime time = LocalTime.parse("25:70");
} catch (DateTimeParseException e) {
System.out.println("Invalid time format");
}挑战
简单创建一个名为 processTime 的方法,它接受四个参数:
- 一个格式为 "HH:mm" 的 String(
timeStr) - 一个用于加减的整数(
amount) - 一个值为 "hours" 或 "minutes" 的 String(
unit) - 一个值为 "add" 或 "subtract" 的 String(
operation)
该方法应该:
- 解析输入的时间字符串
- 执行指定的操作
- 返回格式化后的结果信息
返回的消息应该是:
- 如果时间格式无效:返回 "Invalid time format"
- 如果单位无效:返回 "Invalid unit"
- 如果操作无效:返回 "Invalid operation"
- 成功时:返回 "Original: [time], New: [new_time]"
亲手试试
import java.util.Scanner;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
public class Main {
public static String processTime(String timeStr, int amount, String unit, String operation) {
// 在这里写你的代码
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String timeStr = scanner.nextLine();
int amount = Integer.parseInt(scanner.nextLine());
String unit = scanner.nextLine();
String operation = scanner.nextLine();
System.out.println(processTime(timeStr, amount, unit, operation));
}
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: Java 在线编译器