我正在嘗試以下代碼以打開某個目錄中的文件。文件的名稱是按日期分配的,但缺少一些日期。我想遍歷日期以獲取文件,並使代碼每次無法找到文件時都返回1天,直到它找到一個文件(currentdate
是一個全局變量,而奇怪的xml元素是因爲我正在使用處理)。重試打開目錄中的文件
我覺得代碼應該做的是:
- 嘗試打開該文件用給出的日期。
- 錯誤,它會抓住並獲得一個新的日期。
- 重複此過程直至找到有效日期。
- 當找到有效日期時,它會轉到
break
所在的行,並退出循環。
但由於某些原因,它像編輯#怪異的東西,有時它跳躍得太多,尤其是臨近正月# 是我的邏輯不工作的一些原因? 感謝
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;
}
你的意思是當'firstdate'在這一行'firstdate = formatter.parse(「2012-04-13」);'是將來嗎? –
對不起,這個問題其實不是真的..我剛剛編輯對不起了。這很奇怪,因爲在4月份,這是第一個月的文件,當我從5月3日移動到例如1周到4月28日,那麼它一直到數據庫的第一天,即4月13日,但它不在其他幾個月的行爲不檢,至少我沒有注意到..即時通訊檢查更多的錯誤,但需要一段時間來加載 – fartagaintuxedo
我只是想了解,哪些數據將來會導致您的問題?在'getdatestring'中只有外部值是firstDate到上面的行。我是否錯過了您的問題域? –