我正在尝试遍历日期但没有成功,因为发生无限循环并且它不会停止在数据库中创建记录。为什么?
我有以下方法,该方法将作为参数传递的日期递增 1,然后返回更新后的日期。
public static Date addDays(Date date, int days) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DATE, days);
return cal.getTime();
}
然后我以这种方式在 for 循环中使用它...
for (Date initDate = fromDate; initDate.before(toDate); addDays(initDate, 1)) {
// Do something...
}
fromDate 和 toDate 是从 JTextField 中以这种方式解析为 sql.Date 的值。
private java.sql.Date fechaParser(String f) {
SimpleDateFormat formatDate = new SimpleDateFormat("dd/MM/yyyy");
Date date;
try {
date = formatDate.parse(f);
java.sql.Date sqlDate = new java.sql.Date(date.getTime());
return sqlDate;
} catch (ParseException e) {
JOptionPane.showMessageDialog(null, "Wrong date format.");
e.printStackTrace();
}
return null;
}
最佳答案
您的 addDays()
函数返回一个新日期而不是更改参数一。
因此,您需要将 for 循环的增量部分从此更改为:
for ( ...; addDays(initDate, 1)) { ...
为此:
for ( ...; initDate = addDays(initDate, 1)) { ...
关于java - 无限循环试图遍历 Java 中的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34009585/