Java - 公历

标签 java date gregorian-calendar

我在 Java 中使用 GregorianCalendar,我想知道如何使用它来检查日期是否有效(例如:检查 2 月 29 日是否仅在闰年, 检查日期是否不早于当前数据等)。

我已经创建了一个 GregorianCalendar 对象,并将我想要检查的数据值传递给它,如下所示:

GregorianCalendar cal1 = new GregorianCalendar(day,month,year);

如果日期有效,我想返回 true。我怎么能这样做?

最佳答案

基本思想:如果您尝试将无效日期设置为 Calendar 实例,它会使它成为正确的日期,

例如,如果您将 45 设置为日期,一旦您设置和检索它就不会相同

public boolean isValid(int d, int m, int y){
    //since month is 0 based
    m--;
    //initilizes the calendar instance, by default the current date
    Calendar cal = Calendar.getInstance();
    //resetting the date to the one passed
    cal.set(Calendar.YEAR, y);
    cal.set(Calendar.MONTH, m);
    cal.set(Calendar.DATE, d);

    //now check if it is the same as we set then its valid, not otherwise
    if(cal.get(Calendar.DATE)==d &&cal.get(Calendar.MONTH) ==m && cal.get(Calendar.YEAR) ==y){
      return true;
    }
    //changed so not valid 
    return false;

}

关于Java - 公历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9752942/

相关文章:

java - Spring HTTPS 正在切换到 HTTP : I want to use either HTTPS or HTTP for the site depending on the user

java - 计算Java中两个日期之间的天数

android - GregorianCalendar/Calendar 和设置 HOUR 字段奇数

java - 有没有办法在 JavaFX TableView 上使用 GregorianCalendar?

Java 8 压缩文件 > 4 GB。 zip 异常 : invalid CEN header (bad signature)

java - 如果在同一事务中删除实体,EM Find 的行为会有所不同

r - 如何标准化同一列中的混合日期格式

Java GregorianCalendar 和 Calendar 错位了 2010 年 8 月和 9 月的周末、一个月中的日期

java - 如何获取用户输入的最后一个字符?

javascript - 为什么 'getTimezoneOffset' 在 Date.prototype 中实现而不是作为 Date 的静态方法?