java - 从 cmd 验证日期的方法
问题描述
我需要以某种方式验证两个日期,但我不知道哪种方式最好。在 mainclass 中,我创建了由构造函数传递给NBPParserEngine
.
package pl.parser.nbp;
import pl.parser.nbp.calculations.RateCalculations;
import pl.parser.nbp.validation.ConditionChecker;
import pl.parser.nbp.validation.ConditionCheckerService;
import pl.parser.nbp.historysystem.HistorySystem;
import pl.parser.nbp.historysystem.HistorySystemService;
import pl.parser.nbp.view.NbpParserView;
import java.time.LocalDate;
public class MainClass {
public static void main(String[] args) {
NbpParserView nbpParserView = new NbpParserView();
DataFetcher dataFetcher = new DataFetcher();
HistorySystem historySystem = new HistorySystemService();
RateCalculations rateCalculations = new RateCalculations();
ConditionChecker conditionChecker = new ConditionCheckerService();
NBPParserEngine nbpParserEngine = new NBPParserEngine(conditionChecker, dataFetcher, rateCalculations,
historySystem, nbpParserView);
String currency = args[0];
LocalDate startDate = LocalDate.parse(args[1]);
LocalDate endDate = LocalDate.parse(args[2]);
nbpParserEngine.executeNbpParserEngine(startDate, endDate, currency);
}
}
我需要验证这两个日期是否合适,因为如果不是,则DateTimeParseException
抛出。while
我应该使用循环和扫描仪在 main 中验证它还是以哪种方式验证它?
解决方案
使用 try-catch 语句,例如:
LocalDate startDate = null;
try {
startDate = LocalDate.parse(args[1]);
} catch (DateTimeParseException dtpe) {
System.err.println("Start date \"" + args[1] + "\" is not a valid date.");
System.exit(-1);
}
对结束日期执行类似操作。
搜索java exception handling
或类似内容以了解更多信息。
是的,如果您的程序是交互式的,从命令行读取日期的替代方法是使用扫描仪从标准输入读取并循环直到输入有效日期。同样,我认为搜索将引导您找到将其组合在一起所需的构建块。
推荐阅读
- html - 关于html中项目的想法
- python - 将用 selenium 编写的 pythone 代码转换为 scrapy 或 requests
- javascript - 闭包:范围链变量 - 不确定变量如何链接
- database - Firebase Firestore 监听集合中文档的变化
- java - 为什么在 Linux 中单击所有者时模式窗口的顺序会发生变化
- java - 将 connectionTimedOut 设置为 1 秒会引发 Socket Timed Out 错误
- c++ - 从 python 调用 openMP 共享库时未定义的 opnMP 函数
- django - 如何使用 postgresql 在 django 中处理数据库连接池
- reactjs - 使用 Radium 检查复选框时设置其标签的样式
- makefile - 如何通过make文件中的子字符串连接命令?