El año bisiesto contiene 366 días, que ocurre una vez cada cuatro años. Cada año bisiesto corresponde a estos hechos:
- Un año de siglo es un año que termina en 00. Un año de siglo es un año bisiesto solo si es divisible por 400.
- Un año bisiesto (excepto un año de siglo) se puede identificar si es exactamente divisible por 4.
- Un año de siglo debe ser divisible por 4 y 100 ambos.
- Un año sin siglo debe ser divisible solo por 4.
Averigüemos si un año es bisiesto o no.
Sin usar la clase de escáner
Como sugiere el nombre aquí, el usuario está obligado a no seleccionar un año de su elección. El siguiente programa ilustra la forma de saber si un año es bisiesto:
Java
// Java program to find a leap year // Importing Classes/Files import java.io.*; // Class for leap-year dealing public class GeeksforGeeks { // Method to check leap year public static void isLeapYear(int year) { // flag to take a non-leap year by default boolean is_leap_year = false; // If year is divisible by 4 if (year % 4 == 0) { is_leap_year = true; // To identify whether it // is a century year or // not if (year % 100 == 0) { // Checking if year is divisible by 400 // therefore century leap year if (year % 400 == 0) is_leap_year = true; else is_leap_year = false; } } // We land here when corresponding if fails // If year is not divisible by 4 else // Flag dealing- Non leap-year is_leap_year = false; if (!is_leap_year) System.out.println(year + " : Non Leap-year"); else System.out.println(year + " : Leap-year"); } // Main Driver Code public static void main(String[] args) { // Calling our function by // passing century year not divisible by 400 isLeapYear(2000); // Calling our function by // passing Non-century year isLeapYear(2002); } }
2000 : Leap-year 2002 : Non Leap-year
Complejidad de tiempo: O(1)
Espacio Auxiliar: O(1)
2000 es un año de siglo divisible por 100 y 4. 2002 no es divisible por 4, por lo tanto, no es un año bisiesto.
Uso de la clase de escáner
Aquí, el usuario tiene la flexibilidad de ingresar el año de su elección, ya que la clase de escáner se importa aquí; el resto, los bloques if-else también se combinan en una sola declaración para verificar si el año de entrada es un año bisiesto. El siguiente programa ilustra la forma de saber si un año es bisiesto:
Java
// Java program to check Leap-year // by taking input from user // Importing Classes/Files import java.io.*; // Importing Scanner Class import java.util.Scanner; // Class to check leap-year or not public class GFG { // Driver Main code public static void main(String[] args) { // Considering any random year int year; // Taking input from user using Scanner Class // scn is an object made of Scanner Class Scanner scn = new Scanner(System.in); year = scn.nextInt(); // 1st condition check- It is century leap year // 2nd condition check- It is leap year and not // century year if ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0))) { // Both conditions true- Print leap year System.out.println(year + " : Leap Year"); } else { // Any condition fails- Print Non-leap year System.out.println(year + " : Non - Leap Year"); } } }
Aporte:
2012
Producción:
2012 : Leap Year
Complejidad de tiempo: O(1)
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por yashchuahan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA