2015-07-02 22 views
0

我想設置一個鬧鐘到用戶選擇的特定日期,當我設置爲當天的前一天,它將它設置爲過去的日期,我希望它設置爲未來。Android日曆:進入未來日

這裏是我的日曆集代碼:

Calendar calendar = Calendar.getInstance(); 
calendar.set(Calendar.HOUR_OF_DAY, hour.getHour()); 
calendar.set(Calendar.MINUTE, 0); 
calendar.set(Calendar.SECOND, 0); 
calendar.set(Calendar.AM_PM, Calendar.AM); 
calendar.set(Calendar.DAY_OF_WEEK, Calendar.Monday); 

讓我們說今天是星期四,當我設置日期星期一,我希望它以後設置爲4天,但在此之前,將其設置爲3天過去星期一

+0

可能重複的[如何在Java中添加日期日期](http://stackoverflow.com/questions/2507377/how-to-add-days-to-a-date-in-java) –

回答

1

您可以使用下面的「技術」:

  1. 計算當前日期和當天要設置爲壓延機在未來這樣的例子之間的天差

    //future date 
    Calendar thatDay = Calendar.getInstance(); 
    thatDay.set(Calendar.HOUR_OF_DAY, hour.getHour()); 
    thatDay.set(Calendar.MINUTE, 0); 
    thatDay.set(Calendar.SECOND, 0); 
    thatDay.set(Calendar.AM_PM, Calendar.AM); 
    thatDay.set(Calendar.DAY_OF_WEEK, Calendar.Monday); 
    
    //current date 
    Calendar newDay = Calendar.getInstance(); 
    
    long diff = thatDay.getTimeInMillis() - newDay.getTimeInMillis(); //result in millis 
    
    //result in days 
    long days = diff/(24 * 60 * 60 * 1000); 
    
  2. 添加到日曆這麼多天,你在步驟1爲例計算如下:

    Calendar calendar = Calendar.getInstance(); 
    calendar.set(Calendar.HOUR_OF_DAY, hour.getHour()); 
    calendar.set(Calendar.MINUTE, 0); 
    calendar.set(Calendar.SECOND, 0); 
    calendar.set(Calendar.AM_PM, Calendar.AM); 
    calendar.add(Calendar.DATE, daysCount); // Add daysCount days to current date 
    
0

您應該add而不是set。一旦添加Calendar實例,就會正確提前或減少(也可以添加負數)。

通過設置其中一個屬性,您可能必須處理所有回合並進行處理。