Blue J Kalendarz - do poprawy

0

Witam. Prosiłbym o poprawe programu... Nie wiem dlaczego mi nie dziła

import java.util.Scanner;
public class Sylwester
{
public static void main(String[] args){
Scanner wpisz = new Scanner(System.in);
int d = 0;
int m = 0;
int z = 0;
int wynik = 0;
int tab[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

System.out.println("Prosze podać date");
do{
System.out.print("Dzień: "); d = wpisz.nextInt();
System.out.print("Miesiąc: "); m =wpisz.nextInt();
System.out.print("Rok przestepny??" + " 0- Nie " + " 1-Tak ");
z = wpisz.nextInt();
} while (d < 1 || d > 31 || m < 1 || m > 12 || z < 0 || z >1);

for(int i=0 ;i < m-1; i++){
wynik += tab[i];
}

if( z == 0) {wynik = 365 - (d + wynik); }
if(z == 1){ wynik = 366 - (d + wynik);}
System.out.println("Pozostało " + wynik + " dni do sylwestra");
}
}

//edit: Proszę o poprawienie posta. Tagi code nie służą do wyglądania. Zdefiniuj też w czym tkwi problem.

0

Co znaczy "nie działa" ?

0

Jeżeli mam miesiac > lutego, to nie ma znaczenia, czy ten rok był przestępny, czy też nie.

if( z == 0 || m > 2) {wynik = 365 - (d + wynik); }
else{ wynik = 366 - (d + wynik);}
System.out.println("Pozostało " + wynik + " dni do sylwestra");
0

Bardziej elegancka i czytelna postać poprawki @__krzyśka85

if(z==1) tab[1]=29;
for(int i=0 ;i < m-1; i++){
    wynik += tab[i];
}   
wynik = 365 - (d + wynik); 

1 użytkowników online, w tym zalogowanych: 0, gości: 1