Programa Java para generar el calendario de cualquier año sin la función calendar.get()

El programa de Java para generar el calendario de cualquier año y mes deseado, veamos primero una ración ilustrativa antes de aterrizar en la parte lógica y de procedimiento.

Ilustración:

Digamos que el usuario desea obtener el calendario de abril de 2011. Luego, debe ingresar el año junto con el mes como números enteros y la salida devolverá el calendario del mes deseado para el año respectivo en un formato adecuado.

Procedimiento:

Paso 1: Tome el año y el mes como entradas enteras del usuario

Paso 2: cree 2 arrays de la siguiente manera, una para almacenar los días y la otra para almacenar los meses, según el orden adecuado.

String day[]   = { "SUN","MON","TUE","WED","THU","FRI","SAT" } ;  
String month[] = { "JANUARY","FEBRUARY","MARCH","APRIL","MAY","JUNE","JULY","AUGUST","SEPTEMBER","OCTOBER","NOVEMBER","DECEMBER" } ; 

Paso 3: Inicialice una variable de contador y tres variables, cada una para el día, el mes y el año como 1, y una array separada para almacenar las diferentes combinaciones de días en las que se pueden encontrar los meses. P.ej. 31,30,29

int ar[] = { 31,29,31,30,31,30,31,31,30,31,30,31 } ;

Paso 4: verifique la condición del año bisiesto y reinicie los valores para la array anterior.

if(y%4==0&&y%100!=0||y%100==0)
ar[1]=29;                       // if the year is a leap year then store 29 for the month of february
else  
ar[1]=28;                       // else 28 

Paso 5: Incremente el conteo de años a medida que el conteo de meses llegue a 12 e incremente el conteo de meses a medida que el conteo de días alcance un valor mayor que el presente en la array para el índice respectivo

Paso 6: Imprime el resultado.

Implementación:

Ejemplo

Java

// Java Program to Generate Desired Calendar
// Without calendar.get() function or
// Inputting the Year and the Month
  
// Importing required classes
import java.io.*;
import java.util.Scanner;
  
// Main class
public class GFG {
  
    // Main driver method
    public static void main(String a[])
    {
  
        // Reading input by creating object of Scanner class
        Scanner sc = new Scanner(System.in);
  
        // Display message only
        System.out.print("Enter the year : ");
  
        // Reading integer input value
        int yy = sc.nextInt();
  
        // Display message only
        System.out.print("Enter month : ");
  
        // Reading integer input value
        int mm = sc.nextInt();
  
        int d = 1;
        int m = 1;
        int y = 1;
        int dy = 1;
  
        // Storing data and months as input
        String day[] = { "SUN", "MON", "TUE", "WED",
                         "THU", "FRI", "SAT" };
        String month[]
            = { "JANUARY", "FEBRUARY", "MARCH",
                "APRIL",   "MAY",      "JUNE",
                "JULY",    "AUGUST",   "SEPTEMBER",
                "OCTOBER", "NOVEMBER", "DECEMBER" };
  
        // Custom array as input
        int ar[] = { 31, 29, 31, 30, 31, 30,
                     31, 31, 30, 31, 30, 31 };
  
        // Till condition holds true
        while (true) {
  
            if (d == 1 && m == mm && y == yy) {
                break;
            }
  
            if (y % 4 == 0 && y % 100 != 0
                || y % 100 == 0) {
                ar[1] = 29;
            }
  
            else {
                ar[1] = 28;
            }
            dy++;
            d++;
  
            if (d > ar[m - 1]) {
                m++;
                d = 1;
            }
  
            if (m > 12) {
                m = 1;
                y++;
            }
  
            if (dy == 7) {
                dy = 0;
            }
        }
  
        int c = dy;
  
        if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0) {
            ar[1] = 29;
        }
        else {
            ar[1] = 28;
        }
  
        // Print the desired month of input year
        System.out.println("MONTH:" + month[mm - 1]);
  
        for (int k = 0; k < 7; k++) {
            System.out.print("   " + day[k]);
        }
  
        System.out.println();
  
        for (int j = 1; j <= (ar[mm - 1] + dy); j++) {
            if (j > 6) {
                dy = dy % 6;
            }
        }
  
        int spaces = dy;
        if (spaces < 0)
            spaces = 6;
  
        // Printing the calendar
        for (int i = 0; i < spaces; i++)
            System.out.print("      ");
        for (int i = 1; i <= ar[mm - 1]; i++) {
            System.out.printf(" %4d ", i);
  
            if (((i + spaces) % 7 == 0)
                || (i == ar[mm - 1]))
                System.out.println();
        }
    }
}

Producción: 

Publicación traducida automáticamente

Artículo escrito por deveshsingh0110 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 *