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