【问题标题】:Calender Not Validating Month and day only Year日历不验证仅月和日
【发布时间】:2012-10-17 08:58:56
【问题描述】:

我有一个操作按钮,应该在登录期间检查应用程序的过期日期:

public void actionPerformed(ActionEvent ae) {
  Calendar expiredate = Calendar.getInstance();
  expiredate.set(2012, 10, 10);
  if (ae.getSource() == button) {
    char[] temp_pwd = t_pass.getPassword();
    String pwd = null;
    pwd = String.copyValueOf(temp_pwd);

    if (db.checkLogin(t_name.getText(), pwd)) {
      try {
        if (Calendar.getInstance().after(expiredate)) {
          JOptionPane.showMessageDialog(null, "License has Expired\n Please Re-new the License from the Provider", "Re-new License", JOptionPane.ERROR_MESSAGE);
          t_name.setText("");
          t_pass.setText("");
          t_name.requestFocus();
          return;
        }
        JOptionPane.showMessageDialog(null, "You have logged in successfully. Click OK to Continue", "Success",
        JOptionPane.INFORMATION_MESSAGE);
        MainFrame page = new MainFrame();
        page.setVisible(true);
        setVisible(false);
      } catch(Exception ai){
        JOptionPane.showMessageDialog(null, ai, "Exception",
        JOptionPane.INFORMATION_MESSAGE);
      }
    } else {
      JOptionPane.showMessageDialog(null, "Login failed!\nWrong Username or password", "Failed!!",
      JOptionPane.ERROR_MESSAGE);
      t_name.setText("");
      t_pass.setText("");
      t_name.requestFocus();
      return;
    }
  }//if
}//method

问题是系统日期是 2012 年 10 月 17 日。显然登录仍然发生。但是当我将 2012 更改为 2011 作为到期日期时,就会发生许可证验证。系统忽略 2012 年 10 月 10 日日期可能是什么问题?

【问题讨论】:

  • 旁注:用expiredate.set(2012, 09, 10);表示10.10.2012。 Month 是从零开始的...
  • 我认为你是对的。我没有意识到 Months 从 0 开始计算。谢谢

标签: java swing date calendar


【解决方案1】:

月份常数 10 是 11 月。 NOVEMBER = 10 所以你将月份设置为 11 月。

你应该使用

expiredate.set(2012, Calendar.OCTOBER, 10);

总是使用 Calendar 中提供的月份常量来进行这种用法,因为在 java 中月份从 0 开始。这样可以避免混淆。

【讨论】:

    【解决方案2】:

    问题是,日历的月份值是从 0 开始的。这意味着,您的过期日期是 11 月 10 日。

    10 月 10 日将是:

    expiredate.set(2012, 9 , 10);
    

    希望这有帮助

    【讨论】:

    • 是的,它确实帮助了很多..我应该注意到
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-10
    相关资源
    最近更新 更多