Nic*_*oid 1 java for-loop date
我正在尝试迭代日期而没有成功,因为发生了一个inifite循环,它不会停止在数据库中创建记录.为什么?
我有以下方法,将一个日期作为参数传递,然后返回更新.
public static Date addDays(Date date, int days) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DATE, days);
return cal.getTime();
}
Run Code Online (Sandbox Code Playgroud)
然后我以这种方式在for循环中使用它......
for (Date initDate = fromDate; initDate.before(toDate); addDays(initDate, 1)) {
// Do something...
}
Run Code Online (Sandbox Code Playgroud)
fromDate和toDate是以这种方式解析为sql.Date的JTextField的值.
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;
}
Run Code Online (Sandbox Code Playgroud)
您的addDays()函数返回一个新日期,而不是更改参数.
因此,您需要更改for循环的增量部分:
for ( ...; addDays(initDate, 1)) { ...
Run Code Online (Sandbox Code Playgroud)
对此:
for ( ...; initDate = addDays(initDate, 1)) { ...
Run Code Online (Sandbox Code Playgroud)