如何在特定日期后禁用按钮 [JAVA]
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);
然后:使用 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;
}
希望对您有所帮助。
避免 java.util.Date 和 .Calendar 类 与 Java 捆绑在一起。而是使用 Joda-Time 或 Java 8 或更高版本中的新 java.time 包(受 Joda-Time 启发)。
时区
时区对于确定日期至关重要。例如,新的一天在巴黎比在蒙特利尔早,后者仍然是 'yesterday'.
乔达时间
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 ) ;
我想知道如何在 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);
然后:使用 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;
}
希望对您有所帮助。
避免 java.util.Date 和 .Calendar 类 与 Java 捆绑在一起。而是使用 Joda-Time 或 Java 8 或更高版本中的新 java.time 包(受 Joda-Time 启发)。
时区
时区对于确定日期至关重要。例如,新的一天在巴黎比在蒙特利尔早,后者仍然是 'yesterday'.
乔达时间
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 ) ;