Menu
CoddyTech

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");
}
challenge icon

挑战

简单

创建一个名为 processTime 的方法,它接受四个参数:

  1. 一个格式为 "HH:mm" 的 String(timeStr)
  2. 一个用于加减的整数(amount)
  3. 一个值为 "hours" 或 "minutes" 的 String(unit)
  4. 一个值为 "add" 或 "subtract" 的 String(operation)

该方法应该:

  1. 解析输入的时间字符串
  2. 执行指定的操作
  3. 返回格式化后的结果信息

返回的消息应该是:

  • 如果时间格式无效:返回 "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));
    }
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: Java 在线编译器