2010-09-01 56 views
1

我有一個基於當天顯示信息的程序。一切都一直工作到今天。由於某種原因,當日歷回滾一天以獲得昨天的日期時,會直接進入八月三十日。它跳過8月31日。它會抓住今天的日子很好(第一節),但是當我追蹤它時,它會在第三十一秒過去。任何人對我在做什麼錯誤或更好的方式做的建議?這裏是我的代碼日曆跳過8月31日滾動(Calendar.DATE,false)

Calendar date2; 
    date2 = Calendar.getInstance(); 
    mday1 = date2.get(Calendar.DATE); 
    date2.roll(Calendar.DATE, false); //rolls back the date by one day 
    mday2 = date2.get(Calendar.DATE); 

回答

3

它不會去上個月。它保持在同一個月(自己查看月份字段)。它只是改變了一個月的一天。您希望使用Calendar#add()而不是負值。

Calendar date2; 
date2 = Calendar.getInstance(); 
mday1 = date2.get(Calendar.DATE); 
date2.add(Calendar.DATE, -1); //rolls back the date by one day 
mday2 = date2.get(Calendar.DATE); 
+0

你是對的,你的解決方案修復它,我沒有察覺月份沒有改變,謝謝:) – John 2010-09-02 01:36:57

+0

不客氣。 – BalusC 2010-09-02 01:37:35