Gyakorlati alapok
Különutas szökőév-ellenőrzés
A fejezet elméleti alapja a Kényeskedés netovábbja: a többszörös feltételmegadás (szökőév) című fejezetben tanulmányozható.
Ebben a rövid implementációban az alapjában véve szekvenciális szökőév-ellenőrző lépéssorozatot szedjük szét funkciók szerint és tesszük külön metódusokba. A main() főprogram csak a külső metódusokat fogja nyájasan hívogatni. Ezek a következők:
-
adatbekérés ellenőrzés nélkül (int getBemenetiAdat(String adatBekeres)),
-
szökőév ellenőrzése (void szokoevEllenorzes(int ev));
Az implementáció során nem beépített metódusokat (java.util csomag GregorianCalendar() osztály isLeapYear() függvénye), hanem a saját kódmegoldásokat használjuk fel. Nézzük meg a futtatható Java-kódot:
import java.util.Scanner;
public class Main {
static int getBemenetiAdat(String adatBekeres){
Scanner scanner = new Scanner (System.in);
System.out.println(adatBekeres);
String adatString = scanner.nextLine();
int ev = Integer.parseInt(adatString);
return ev;
}
static void szokoevEllenorzes(int ev){
if ((ev > 1582) && (ev % 4 == 0) && (ev % 100 != 0) || (ev %
400 == 0)){
System.out.println ("Az év
szökőév.");
}
else
System.out.println ("Az év NEM
szökőév.");
}
public static void main(String[] args) {
int ev = getBemenetiAdat("Kérem, hogy adja meg az
évszámot!");
szokoevEllenorzes(ev);
}
}
Végeredmény (például):
2016
Az év szökőév.
Segédlet:
-
szökőévek - 1600, 1988, 1992, 1996, 2000, 2004, 2008, 2012, 2016, 2020, 2024, 2400.
-
nem szökőévek - 1700, 1800, 1900, 2100, 2200, 2300.