[英]How to disable a button after a certain date [JAVA]
我想知道如何在 2015 年 7 月 4 日这样的日期之后禁用按钮? 我在此站点上找到了一个示例,说明如何在该日期禁用按钮,但在该日期之后的几天不禁用。
发件人示例:
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);
}
您可以通过以下几种方法检查自己的状况:
获取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;
}
我希望这有帮助。
避免与 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 ) ;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.