我想知道如何在2015年7月4日之后禁用按钮? 我在这个网站上找到了一个例子,说明如何在该日期禁用按钮,而不是在该日期之后的后续日期。
FROM示例:
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);
}
答案 0 :(得分:0)
以下是一些可以检查条件的方法:
获取Calendar
的实例并设置您的指定日期。
int dayOfMonth = 29;
int month = Calendar.JUNE;
int year = 2014;
Calendar disableDate = Calendar.getInstance();
disableDate.set(year, month, dayOfMonth);
然后:使用before / after / equals
//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;
}
我希望这会有所帮助。
答案 1 :(得分:0)
避免与Java捆绑的java.util.Date和.Calendar类。而是使用Joda-Time或Java 8或更高版本中的新java.time包(受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 ) ;