#incorrect result for calculation the remain day for year leap year

1 messages · Page 1 of 1 (latest)

timid bronzeBOT
#

<@&987246399047479336> please have a look, thanks.

covert meadow
#

package pack5;
import java.time.LocalDate;
public class Date {
final private LocalDate now;
private int day_number;

public Date()
{
    now=LocalDate.now();
}
public int calculation()
{
    if(now.getMonth().getValue()!=2)
    {
        if(now.getMonth().getValue()==1)
            day_number=31-now.getDayOfMonth();
        else
        {
            int c=1;
            if(now.getMonth().getValue()%2==0)
                day_number =31-now.getDayOfMonth();
            else {
                day_number = 30 - now.getDayOfMonth();
                c = 0;
            }
            int condition=12-now.getMonth().getValue()+1;
            while(condition--!=0)
            {
                if(c==1)
                {
                    day_number+=31;
                    c=0;
                }
                else
                {
                    day_number+=30;
                    c=1;
                }
            }
        }
    }
    int y=now.getYear();
    if(now.getMonth().getValue()>2 ) {
        while (!((y % 400 == 0) || ((y % 100 != 0) && (y % 4 == 0)))) {
            day_number += 365;
            y++;
        }
    }
    return day_number;
}

}

timid bronzeBOT
# covert meadow package pack5; import java.time.LocalDate; public class Date { final private...

Detected code, here are some useful tools:

Formatted code
package pack5;

import java.time.LocalDate;

public class Date {
  final private LocalDate now;
  private int day_number;
  public Date() {
    now = LocalDate.now();
  }
  public int calculation() {
    if (now.getMonth().getValue() != 2) {
      if (now.getMonth().getValue() == 1) day_number = 31 - now.getDayOfMonth();
      else {
        int c = 1;
        if (now.getMonth().getValue() % 2 == 0) day_number = 31 - now.getDayOfMonth();
        else {
          day_number = 30 - now.getDayOfMonth();
          c = 0;
        }
        int condition = 12 - now.getMonth().getValue() + 1;
        while (condition-- != 0) {
          if (c == 1) {
            day_number += 31;
            c = 0;
          }
          else {
            day_number += 30;
            c = 1;
          }
        }
      }
    }
    int y = now.getYear();
    if (now.getMonth().getValue() > 2) {
      while (!((y % 400 == 0) || ((y % 100 != 0) && (y % 4 == 0)))) {
        day_number += 365;
        y++;
      }
    }
    return day_number;
  }
}