Java program drobna pomoc

0

Witam

Bardzo proszę o drobną pomoc. Czy ktoś mógłby mi dokładnie wyjaśnić kilka linijek w programie

import java.util.Scanner;
import java.util.Locale;
 
class Rok{

  public static void main(String args[])
   {
   
   float rok;
 Scanner inp=new Scanner(System.in);
 inp.useLocale(Locale.US);
 System.out.println("Podaj rok: ");
 rok=inp.nextFloat();

    // sprawdz czy rok jest podzielny przez 4 oraz nie jest podzielny
    // przez sto lub jest podzielny przez 400.
     if (rok%4==0 && rok%100!=0 || rok%400==0){
           System.out.println("Tak");
     } else {
           System.out.println("Nie");
     }
  }
}

Chodzi dokładnie o to
if (rok%4==0 && rok%100!=0 || rok%400==0){

0

if (rok%4==0 && rok%100!=0 || rok%400==0)
To znaczy mniej więcej tyle co : Jeśli rok podany przez ciebie i zapisany w zmiennej (rok) np 2000 po podzieleniu przez 4 (% dzielenie modulo) 2000%4= 500 reszty 0 (wynik to reszta z dzielenia a nie część całkowita) równa się 0 i(&&) 2000%100 jest różne od 0. LUB(||) 2000%400 równa się 0 to na ekranie zostanie wyświetlone 0

rok%4==0 AND rok%100==0 wyświetli TAK
rok%400==0 wyświetli TAK

Jeśli żaden z tych warunków nie zostanie spełniony wyświetli NIE

Dzielenie modulo np: 100%3= całości 33 reszty 1 (i ta reszta to wynik tej operacji)

0

ta linijka sprawdza po prostu czy dany rok jest rokiem przestępnym, a jak można się dowiedzieć z innych źródeł rok przestępny mamy co 4 lata, ale już nie co 100 lat i zawsze co 400lat.
Czyli rok 1200 będzie przestępny bo jest podzielny przez 400, 1300 nie będzie przestępny bo jest podzielny przez 100.

p.s.
Na co dzień pamięta się tylko o zasadzie, że co 4ty rok jest przestępny. A cała zabawa wynika z tego, że rok słoneczny ma 365 dni 5 godzin 48 minut i 46 sekund i ta cała zabawa z tymi latami przestępnymi jest po to aby tą nierówność do kalendarzowych 365 dni zniwelować.

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