我有以下这些标准。
leap年的一月和二月日期:从步骤5中减去1
1600年代的日期:将5加6
1700年代的日期:将5加4
1800年代的日期:将5加2
2000年代的日期:将5加6
2100年代的日期:将5加4
由于某种原因,我的year年条件不起作用
if(year % 4 == 0 && (year % 100 != 0 || year % 400 == 0) && month == FEBURARY || month == JANURARY){
localYear6 = localMonth - 1;
}
else if(year >= 1600 && year <= 1699){
localYear6 = localMonth + 6;
}
else if(year >= 1700 && year <= 1799 ){
localYear6 = localMonth + 4;
}
else if(year >= 1800 && year <= 1899){
localYear6 = localMonth + 2;
}
else if(year >= 2000 && year <= 2099 ){
localYear6 = localMonth + 6;
}
else if(year >= 2100 && year <= 2199 ){
localYear6 = localMonth + 4;
}
else{
localYear6 = localMonth;
}
最佳答案
考虑问题陈述
leap年的1月和2月日期:从第5步日期中减去1
表示具有January年一月或二月的日期(of年),您的逻辑需要附加括号-
if(year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) {
if(month == FEBURARY || month == JANURARY) {
localYear6 = localMonth - 1;
}
}
或者简单地
if(year % 4 == 0 && (year % 100 != 0 || year % 400 == 0) && (month == FEBURARY || month == JANURARY)) {
localYear6 = localMonth - 1;
}