繁体   English   中英

如何在特定日期后禁用按钮 [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);

然后:使用之前/之后/等于

 //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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM