JAVA代码解释 高手帮我解释下~谢谢

public int BlanceYear(String CvaliDate){
int CurrYear = Integer.parseInt(NowString.CurrTime().substring(0, 4));
int CurrMonth = Integer.parseInt(NowString.CurrTime().substring(4, 6));
int CurrDay = Integer.parseInt(NowString.CurrTime().substring(6, 8));
int Year = Integer.parseInt(CvaliDate.substring(0, 4));
int Month = Integer.parseInt(CvaliDate.substring(5, 7));
int Day = Integer.parseInt(CvaliDate.substring(8, 10));
int BYear = CurrYear - Year;
if(CurrYear - Year == 0){
BYear = 1;
return BYear;
}
if((CurrMonth - Month) < 0){
BYear = CurrYear - Year;
}else BYear = BYear + 1;

if((CurrMonth == Month) && (CurrDay < Day)){
BYear = CurrYear - Year;
}
return BYear;
}

public static void main(String[] args) {
AccountYMD ay = new AccountYMD();
System.out.println(ay.BlanceYear("2006-05-31"));
}

******************************************************************
前面已经int CurrYear = Integer.parseInt(NowString.CurrTime().substring(0, 4));获取了年份为什么后面又有一个int Year = Integer.parseInt(CvaliDate.substring(0, 4));这里的CvaliDate的作用是什么?也是获取年份吗?
还有他后面的三个if判断我不明白为什么?有什么用?
返回的BYear又有什么意义
本人菜的很。刚入门。希望前辈们帮我 谢谢

int Year = Integer.parseInt(CvaliDate.substring(0, 4));
//取年份;也就是2006
if(CurrYear - Year == 0){
BYear = 1;
return BYear;
} //取当前年,去比较你所传的年分,如果相同,返回1
if((CurrMonth - Month) < 0){
BYear = CurrYear - Year;
}else BYear = BYear + 1;
//取当前月和你传入的月比较,如果小于你传入的月分,返回当前年减去你所传入年分的差值,相反则返回差值加上1
if((CurrMonth == Month) && (CurrDay < Day)){
BYear = CurrYear - Year;
}
return BYear;
} //如果当前月分和你所传入的月分相同且当前日期小于你所传入的日期,则返回当前年份减去你所传入年分的差值
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-03-17
CvaliDate是函数调用时传入的一个时间。
后面的if很容易,CvaliDate是传入的时候就好办了,提示一下,if是用传入的时间CvaliDate和当前时间做比较。