用Java语言编写简单的图书馆收费系统。图书馆规定每天3元的费用,计算任意两个日期之间该收多少费用。(需要检验输入的是否为日期格式的字符串)
时间: 2024-01-21 10:16:02 浏览: 92
以下是用Java编写的简单图书馆收费系统代码:
```java
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.Scanner;
public class LibraryFeeSystem {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
System.out.print("请输入借书日期(格式:yyyy-MM-dd):");
String borrowDateStr = scanner.nextLine();
System.out.print("请输入还书日期(格式:yyyy-MM-dd):");
String returnDateStr = scanner.nextLine();
LocalDate borrowDate, returnDate;
try {
borrowDate = LocalDate.parse(borrowDateStr, formatter);
returnDate = LocalDate.parse(returnDateStr, formatter);
} catch (Exception e) {
System.out.println("日期格式不正确");
return;
}
long daysBetween = ChronoUnit.DAYS.between(borrowDate, returnDate);
double fee = daysBetween * 3;
System.out.println("应收费用:" + fee + "元");
}
}
```
代码中使用了Java 8中的日期时间API,首先通过Scanner获取用户输入的借书日期和还书日期,然后使用DateTimeFormatter将输入的字符串转换为LocalDate类型的日期。如果输入的日期格式不正确,则会输出错误信息并退出程序。
接着使用ChronoUnit.DAYS.between方法计算两个日期之间相隔的天数,再将其乘以每天的费用3元,得到应收费用。最后输出结果即可。
以上代码可以满足基本的收费需求,但还有一些需要改进的地方,比如应该将日期格式的字符串转换为LocalDate类型的日期之后再进行校验,以避免输入非法日期字符串导致程序异常;还可以增加一些交互提示信息,让用户更清楚地知道程序的使用方法等等。
阅读全文