Programa Java para encontrar si un año dado es un año bisiesto

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);
    }
}
Producción

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *