public class Main { public static void main(String[] args) { // 获取当前时间 LocalDateTime now = LocalDateTime.now(); // 获取当前小时数 int hour = now.getHour(); // 判断当前时间是否在 9 点到 18 点之间 if (hour >= 9 && hour < 18) { System.out.println("当前时间在 9 点到 18 点之间。"); } else { System.out.println("当前时间不在 9 点到 18 点之间。"); } } }你能帮我优化一下这段代码吗
时间: 2024-02-14 16:07:22 浏览: 75
当然可以,下面是对代码的优化:
```java
import java.time.LocalTime;
public class Main {
public static void main(String[] args) {
// 获取当前时间
LocalTime now = LocalTime.now();
// 判断当前时间是否在 9 点到 18 点之间
if (now.isAfter(LocalTime.of(9, 0)) && now.isBefore(LocalTime.of(18, 0))) {
System.out.println("当前时间在 9 点到 18 点之间。");
} else {
System.out.println("当前时间不在 9 点到 18 点之间。");
}
}
}
```
这段代码使用了 `LocalTime` 类来获取当前时间,并使用 `isAfter()` 和 `isBefore()` 方法来判断当前时间是否在给定时间范围内。同时,由于我们只需要比较当前时间的小时数是否在 9 到 18 之间,因此不需要使用 `LocalDateTime` 类来获取日期信息。
相比之下,这段代码更加简洁易懂,也更加符合需求。
相关问题
// Press Shift twice to open the Search Everywhere dialog and type `show whitespaces`, // then press Enter. You can now see whitespace characters in your code. import java.math.BigInteger; public class Main { public static void main(String[] args) { // Press Alt+Enter with your caret at the highlighted text to see how // IntelliJ IDEA suggests fixing it. BigInteger num1 = new BigInteger("5160000000000000000"); BigInteger num2= new BigInteger("4733944950000000000"); BigInteger sum = (num1 / num2) -1; } }
这段代码有一个错误。BigInteger类不支持使用算术运算符进行计算,需要使用它提供的方法来实现。在这里,我们需要使用BigInteger的divide方法来计算两个大整数的商。
以下是修改后的代码:
```
import java.math.BigInteger;
public class Main {
public static void main(String[] args) {
BigInteger num1 = new BigInteger("5160000000000000000");
BigInteger num2 = new BigInteger("4733944950000000000");
BigInteger quotient = num1.divide(num2);
BigInteger sum = quotient.subtract(BigInteger.ONE);
System.out.println(sum);
}
}
```
在这个例子中,我们首先使用BigInteger类创建两个大整数num1和num2。然后,我们使用divide方法计算num1除以num2的商,并将结果存储在BigInteger对象quotient中。最后,我们使用subtract方法计算quotient减去1的值,并将结果存储在BigInteger对象sum中。最后,我们将结果打印到控制台上。
LocalDateTime now = LocalDateTime.now(),获取时间格式化
要将LocalDateTime格式化为特定的字符串,可以使用DateTimeFormatter类。下面是一个示例代码,演示如何将当前的LocalDateTime格式化为指定的格式:
```java
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
// 定义日期时间格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 格式化LocalDateTime对象
String formattedDateTime = now.format(formatter);
System.out.println("Formatted DateTime: " + formattedDateTime);
}
}
```
在上面的例子中,我们定义了一个"yyyy-MM-dd HH:mm:ss"的格式,然后使用format方法将LocalDateTime对象格式化为字符串。最后,我们打印出了格式化后的日期时间字符串。
你可以根据需要自定义日期时间格式,具体的格式符号和用法可以参考Java官方文档中的DateTimeFormatter类。
阅读全文