2015-06-11 54 views
-2

我想知道如何在2015年7月4日之後禁用按鈕? 我在這個網站上找到了一個關於如何在該日期禁用按鈕但不是該日期後的日子的例子。如何在特定日期後禁用按鈕[JAVA]

自實施例:

Calendar today = Calendar.getInstance(); 
int dayOfMonth = today.get(Calendar.DAY_OF_MONTH); 
int month = today.get(Calendar.MONTH); 
int year = today.get(Calendar.YEAR); 
if (month == Calendar.JUNE && dayOfMonth == 29 && year == 2014) { 
    // June 29, 2014 
    myButton.setEnabled(true); 
} 
else 
{ 
    // NOT June 29, 2014 
    myButton.setEnabled(false); 
} 
+2

'日期#after'可能? – MadProgrammer

回答

0

這裏有幾個方法,你可以檢查你的條件:

獲取Calendar的實例,並設置規定的日期。

int dayOfMonth = 29; 
int month = Calendar.JUNE; 
int year = 2014; 

Calendar disableDate = Calendar.getInstance(); 
disableDate.set(year, month, dayOfMonth); 

然後:使用/後/等於

//enable the button for dates after your prescribed date 
if(today.after(disableDate)) 

//enable the button for dates before your prescribed date 
if(today.before(disableDate)) 

//enable the button only on your prescribed date 
if(today.equals(disableDate)) 

注意之前:您可能需要如果你打算做這些的時候,從最新的實例剝離/零時間將被考慮在內。

要檢查日期平等:

public static boolean calendarCheck(Calendar calendar1, Calendar calendar2) 
{ 
    return zeroCalendar(calendar1).compareTo(zeroCalendar(calendar2)) == 0; 
} 

要零時間

public static Calendar zeroCalendar(Calendar calendar) 
{ 
    calendar.set(Calendar.HOUR, 0); 
    calendar.set(Calendar.MINUTE, 0);  
    calendar.set(Calendar.SECOND, 0); 
    calendar.set(Calendar.MILLISECOND, 0); 
    return calendar; 
} 

我希望這有助於。

+0

本答案在確定當前日期時忽略了時區問題。 –

0

避免與Java捆綁在一起的java.util.Date和.Calendar類。而是使用Joda-Time或Java 8或更高版本中的新Java時間包(受Joda-Time啓發)。

時區

時區對確定日期至關重要。例如,巴黎之前的一個新的一天比在蒙特利爾早些時候還是「昨天」。

喬達時間

LocalDate dueDate = new LocalDate(2015 , DateTimeConstants.JULY , 4) ; 
DateTimeZone zone = DateTimeZone.forID("America/Montréal") ; 
LocalDate now = LocalDate.now(zone) ; 
Boolean disableButton = now.isAfter(dueDate) ; 
相關問題