2011-07-29 82 views
1

我在java vm 1.6下使用eclipse pulsar。問題是java.util Calendar class add方法產生錯誤「方法add(int,int)未定義類型日曆」但它的罰款按documentation罰款。J2ME日曆添加日期問題

package caltest; 

import java.util.Calendar; 
import java.util.Date; 

import javax.microedition.midlet.MIDlet; 
import javax.microedition.midlet.MIDletStateChangeException; 

public class caltest extends MIDlet { 

    public caltest() { 
     // TODO Auto-generated constructor stub 
    } 

    protected void destroyApp(boolean arg0) throws MIDletStateChangeException { 
     // TODO Auto-generated method stub 

    } 

    protected void pauseApp() { 
     // TODO Auto-generated method stub 


    } 

    protected void startApp() throws MIDletStateChangeException { 
     // TODO Auto-generated method stub 
      Calendar cal=Calendar.getInstance(); 
     cal.setTime(new Date()); 
     cal.add(Calendar.DAY_OF_MONTH, -5); 
    } 

} 

回答

6

這個怎麼樣?

// Subtract 5 days from the time in the calendar object 
cal.setTime(new Date(cal.getTime().getTime() - 5 * 86400000)); 

// Subtract 5 days from "now" and set it in the calendar object 
cal.setTime(new Date((new Date()).getTime() - 5 * 86400000)); 

3

你說你使用的是Java 1.6,但它是爲你的項目還是僅用於運行Eclipse?

如果你正在從事的項目與J2ME運行時中運行,你應該在文檔這裏尋找:

具體的Calendar class

的實現這裏描述了「添加日期」方法:

+0

謝謝。任何簡單的方法都可以添加日期 – ArK

+0

對CLASSPATH中的庫進行重新排序以使您的代碼能夠與Java SE API的Calendar類一起使用可能不是一個好主意。原因在於它可能會使您的代碼在您的計算機上的移動模擬器中工作,但是當您將MIDlet jar移動到實際的移動電話時,它可能無法工作,因爲移動電話很可能只有Java ME API,而不是Java SE API。 –

+0

@Paniyar,看看[這裏](http://tcstechies.wordpress.com/2008/09/10/date-add-in-midp-j2me-calendar/) – aioobe