Java 结果未显示,日期验证
知道为什么我的代码不会显示结果吗?也许我搞砸了什么,顺便说一句,只是刚开始编程 该计划的目标是查看主类给出的日期是否有效,对于二月和闰年等细节没有那么具体,所以它非常简单 这是我的Java 结果未显示,日期验证,java,class,validation,date,boolean,Java,Class,Validation,Date,Boolean,知道为什么我的代码不会显示结果吗?也许我搞砸了什么,顺便说一句,只是刚开始编程 该计划的目标是查看主类给出的日期是否有效,对于二月和闰年等细节没有那么具体,所以它非常简单 这是我的DataRec.java: public class DateRec { int month, day, year; boolean good; public DateRec (){ month = 1; day = 1; year = 200
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);
}
}
}
您的validate()错误。。。。无论何时使用3参数构造函数,它都将在中设置为t false(默认值)。如果日期正确,则不能将其设置为true
改成
public void validate (){
if ((month <= 0) || (month > 12) || (year==0) || (day<=0) || (day>31)){
good = false;
}
else
{
good=true;
}
public void validate(){
如果((第12个月)| |(年==0)| |(第31天)){
好=假;
}
其他的
{
好=真;
}
boolean(good)
的默认值为false
,因此需要在构造函数中初始化good
或validate()
函数,即
good = true; // in constructor or validate function
//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
的值,您就不会打印toString()
方法调用的结果。它应该是if(good==true)
或者更简单的,if(good)
为什么你希望0的一天或0的一个月是有效的?除了Rohit所说的,if(good=true){
vsif(good=true){
1)为了更快地获得更好的帮助,请发布一个。2)对代码块使用一致的逻辑缩进。代码缩进的目的是帮助人们理解程序流程。
public DateRec (int setMonth, int setDay, int setYear){
month = setMonth;
day = setDay;
year = setYear;
good = true;
validate();
}