gpt4 book ai didi

Java Joda - 尝试循环日期、月份和年份时无限迭代

转载 作者:行者123 更新时间:2023-12-01 17:16:11 25 4
gpt4 key购买 nike

我必须为特定日期范围(例如 2012-01-30 到 2013-04-30)之间的每个月的每一天创建表。我尝试使用三个 for 循环和 DateTime isBefore 方法来执行此操作,但是我的循环无限运行(尽管日期、月份和年份按其应有的方式递增)。我在下面编写的代码片段,

DateTimeFormatter dtf = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm");
DateTime startDate = dtf.parseDateTime(startDateTime);
DateTime endDate = dtf.parseDateTime(endDateTime);
try{

for(DateTime y=startDate;y.isBefore(endDate);y=y.plusYears(1)) {
for(DateTime month=startDate;startDate.isBefore(endDate);month=month.plusMonths(1)) {
for(DateTime date=startDate;startDate.isBefore(endDate);date=date.plusDays(1)){
String sqlStmt = "CREATE TABLE IF NOT EXISTS...
...
}
}
}
} catch (SQLException e) {

StackTraceElement stack = e.getStackTrace()[2];

}

我的表是按照我想要的方式创建的,因此我尝试执行的 sqlstmt 没有问题,只是循环在遇到 endDate 后不会终止。我是 Java 新手,所以不太确定我在这里做错了什么。任何建议都会非常有帮助!!!

谢谢!

最佳答案

这不是你的问题吗?

 for(DateTime month=startDate;startDate.isBefore(endDate);month=month.plusMonths(1)) {

您正在递增月份,但比较startDate的值,该值不会改变。

我不太确定你想要实现什么,但 Joda 应该允许你通过添加一天 (plusDays(1)) 来迭代天、周、月等。到初始日期。

关于Java Joda - 尝试循环日期、月份和年份时无限迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22012756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com