我正在尝试使用以下代码打开某个目录中的文件。文件的名称是按日期分配的,但缺少某些日期。我想遍历日期以获取文件并让代码在每次找不到文件时返回 1 天,直到最终找到一个文件(currentdate
是一个全局变量,奇怪的 xml 元素是因为我正在使用处理) .
我认为代码应该做的是:
- 尝试打开具有给定日期的文件。
- 出错时,它会捕获并获取新日期。
- 重复该过程,直到找到有效日期。
- 当找到有效日期时,它会转到 is 所在的行
break
并退出循环。
但由于某种原因,它会做一些奇怪的事情,比如 EDIT # 有时它会跳得太多,尤其是在第一个月附近 # 我的逻辑是否因为某种原因不起作用?谢谢
String strdate=getdatestring(counter);
int counter=0;
while(true){
try{
xmldata = new XMLElement(this, "dir/" + strdate + "_filename.xml" );
break;
}catch(NullPointerException e){
counter +=1;
strdate=getdatestring(counter);
}}
String getdatestring(int counter) {
Date firstdate=new Date();
int daystosum=0;
String strcurrentdate="";
if(keyPressed && key=='7'){
daystosum=-7;
}
daystosum=daystosum-counter;
Calendar c=Calendar.getInstance();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
try{
firstdate=formatter.parse("2012-04-13");//first day of the database
}catch(ParseException e){
println(e);
}
c.setTime(currentdate);
c.add(Calendar.DATE,daystosum);
currentdate=c.getTime();
if(currentdate.before(firstdate)){
currentdate=firstdate;
}
strcurrentdate=formatter.format(currentdate);
return strcurrentdate;
}