Java 排序闰年不起作用

Java 排序闰年不起作用,java,Java,我有以下标准 闰年中的1月和2月日期:从步骤5中减去1 16世纪的日期:将6添加到步骤5 1700年代的日期:将4添加到步骤5 19世纪的日期:将2添加到步骤5 2000年代的日期:将6添加到步骤5 2100年代的日期:将4添加到步骤5 由于某种原因,我的闰年条件不起作用 if(year % 4 == 0 && (year % 100 != 0 || year % 400 == 0) && month == FEBURARY || month ==

我有以下标准

闰年中的1月和2月日期:从步骤5中减去1 16世纪的日期:将6添加到步骤5 1700年代的日期:将4添加到步骤5 19世纪的日期:将2添加到步骤5 2000年代的日期:将6添加到步骤5 2100年代的日期:将4添加到步骤5

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

        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月和2月日期:从步骤5日期中减去1

表示闰年的日期为一月或二月,您的逻辑需要额外的括号-

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

为什么你认为你的情况不起作用?你有没有一个输入结果不正确的例子?闰年中的一月和二月是什么意思?所有的一月,加上闰年的二月,这就是你所编码的?或者仅仅是闰年中的一月,在这种情况下,你需要在月份==二月| |月份==一月?超级英雄你打算用闰年和年份在1600-1700等其他范围内做一个-?因为这是其他的一部分,所以不会在一年内执行,这一年是闰年。