次のコードを使用して、特定のディレクトリにあるファイルを開こうとしています。ファイルの名前は日付で割り当てられていますが、一部の日付が欠落しています。日付を繰り返してファイルを取得し、ファイルが見つからないたびにコードを1日に戻して、最終的にファイルが見つかるまで続けたい(currentdate
グローバル変数であり、奇妙なxml要素は処理を使用しているため) 。
私がコードがすべきだと思うことは次のとおりです。
- 指定された日付でファイルを開こうとします。
- エラーが発生すると、キャッチして新しい日付を取得します。
- 有効な日付が見つかるまで、このプロセスが繰り返されます。
- 有効な日付が見つかると、
break
isの行に移動し、ループを終了します。
しかし、何らかの理由で、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;
}