排序闰年不起作用

时间:2017-06-10 03:36:06

标签: java

我有以下这些标准。

闰年的1月和2月日期:从第5步中减去1 17世纪的日期:在第5步中添加6 十七世纪的日期:在步骤5中加4 19世纪的日期:在第5步中添加2 2000年代的日期:在第5步中加6 21世纪的日期:在步骤5中添加4

由于某种原因,我的闰年条件不起作用

        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;
         }

1 个答案:

答案 0 :(得分:1)

考虑问题陈述

  

闰年的1月和2月日期:从第5步日期减去1

表示具有1月或2月的日期(闰年),您的逻辑需要额外的括号 -

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;
}