java - 结果未显示,日期验证

标签 java class validation date boolean

知道为什么我的代码不显示结果吗?也许我搞砸了一些东西,顺便说一句,我刚刚接触编程。

该程序的目标是查看主类给出的日期是否有效,它并没有具体说明二月和闰年等细节,因此非常简单。

这是我的DataRec.java:

public class DateRec {
    int month, day, year;
    boolean good;

    public DateRec (){

        month = 1;
        day = 1;
        year = 2008;
        good = true;
    }

    public DateRec (int setMonth, int setDay, int setYear){
        month = setMonth;
        day = setDay;
        year = setYear;
    }

    public void validate (){
        if ((month < 0) || (month > 12)){
            good = false;

            if (year == 0) 
                good = false;

            if ((day < 0) || (day > 31))
            good = false;
        }
    }

    @Override
    public String toString() {
        if (good = true) {
            return String.format("%dd/%dd/%dddd", month, day, year);
        } else {
            return String.format("%dd/%dd/%dddd", month, day, year);
        }
    }
}

这是我的主类DataRecTest.java:

public class DateRecTest {
    public static void main (String[] args){
        DateRec today = new DateRec(1,2,2014);
        DateRec anyDay = new DateRec();
        DateRec noDay = new DateRec(13,31,2014);
        anyDay.validate();
        today.validate();
        noDay.validate();
        today.toString();
        anyDay.toString();
        noDay.toString();    
    }
}

最佳答案

  1. boolean (good)的默认值为false,因此您需要在构造函数中初始化good > 或 validate() 函数,即

    good = true; // in constructor or validate function
    
  2. 要查看结果,您需要打印它们。

    //To print in java use System.out.print() or println();
    System.out.println(today.toString());
    //or simply
    System.out.println(today); // println will call today.toString() internally
    


[编辑] 由于您将结果存储在 good 中,我建议如下:

 public DateRec (int setMonth, int setDay, int setYear){
    month = setMonth;
    day = setDay;
    year = setYear;
    good = true;
    validate();
 }

现在你不需要每次都调用validate();只需检查 good 的值

关于java - 结果未显示,日期验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20881957/

相关文章:

c++ - 如何使 static_assert block 在模板类中可重用?

node.js - 我应该验证 API 层还是 BL 层的输入?

angularjs - 如何强制重新验证表单?

Java selenium 如何从谷歌搜索结果中打开链接?

class - 获取 Haxe 中具有空值的类字段的类型

javascript - TypeError : <. ..> 不是一个函数

javascript - JS表单验证功能不起作用

java - 客户端代码中的套接字连接被拒绝

java - 通过鼠标监听器更改 Jbutton 的图标

java - 在 servlet 和过滤器中哪里声明 log4j?