Los usuarios pueden personalizar e imprimir el calendario de un año determinado, es decir, imprimir todo el calendario de un año determinado.
Por ejemplo, imprima el calendario de 2013 de la siguiente manera:
febrero 2013
----------------------------------------
Dom Lun Mar Miércoles Jue Vie Sáb
2
4 5 6 7 8 9
11 12 13 14 15 16
18 19 20 21 22 23
25 26 27 28
marzo 2013
----------------------------------------
Dom Lun Mar Miércoles Jue Vie Sáb
2
4 5 6 7 8 9
11 12 13 14 15 16
18 19 20 21 22 23
25 26 27 28 29 30
abril 2013
----------------------------------------
Dom Lun Mar Miércoles Jue Vie Sáb
2 3 4 5 6
8 9 10 11 12 13
15 16 17 18 19 20
22 23 24 25 26 27
29 30
mayo de 2013
----------------------------------------
Dom Lun Mar Miércoles Jue Vie Sáb
2 3 4
6 7 8 9 10 11
13 14 15 16 17 18
20 21 22 23 24 25
27 28 29 30 31
junio de 2013
----------------------------------------
Dom Lun Mar Miércoles Jue Vie Sáb
3 4 5 6 7 8
10 11 12 13 14 15
17 18 19 20 21 22
24 25 26 27 28 29
julio 2013
----------------------------------------
Dom Lun Mar Miércoles Jue Vie Sáb
2 3 4 5 6
8 9 10 11 12 13
15 16 17 18 19 20
22 23 24 25 26 27
29 30 31
agosto 2013
----------------------------------------
Dom Lun Mar Miércoles Jue Vie Sáb
veintitrés
5 6 7 8 9 10
12 13 14 15 16 17
19 20 21 22 23 24
26 27 28 29 30 31
septiembre 2013
----------------------------------------
Dom Lun Mar Miércoles Jue Vie Sáb
2 3 4 5 6 7
9 10 11 12 13 14
16 17 18 19 20 21
23 24 25 26 27 28
30
octubre 2013
----------------------------------------
Dom Lun Mar Miércoles Jue Vie Sáb
2 3 4 5
7 8 9 10 11 12
14 15 16 17 18 19
21 22 23 24 25 26
28 29 30 31
noviembre 2013
----------------------------------------
Dom Lun Mar Miércoles Jue Vie Sáb
2
4 5 6 7 8 9
11 12 13 14 15 16
18 19 20 21 22 23
25 26 27 28 29 30
diciembre 2013
----------------------------------------
Dom Lun Mar Miércoles Jue Vie Sáb
2 3 4 5 6 7
9 10 11 12 13 14
16 17 18 19 20 21
23 24 25 26 27 28
30 31
Como imprimir: Calendario de enero de 2014
Hoy es: 2013-04-27, entonces el calendario del mes actual se imprime de la siguiente manera:
Ahora ingresa la parte del código:
==================================================== ======
Parte del código:
==================================================== ======
/UUUUUU_Test/src/com/b510/date/HongtenDate.java
importar java.text.SimpleDateFormat;
importar java.util.Calendar;
importar java.util.Fecha;
importar java.util.GregorianCalendar;
/**
* Una clase de procesamiento de fechas En esta clase, el constructor <code>HongtenDate()</code> establecerá el año actual de forma predeterminada<br>.
* Y <code>HongtenDate(int año)</code>, puedes personalizar el año<br>
*
* <pre>
* fecha HongtenDate = nueva fecha HongtenDate();
* </pre>
*
*o<br>
*
* <pre>
* HongtenDate hd = nuevo HongtenDate(2014);
* </pre>
*
* Llame a <code>printCalendar()</code> para imprimir la fecha del año<br>
* Llame a <code>printCurrentMonth()</code> para imprimir la fecha del mes actual<br>
*Por supuesto, también puedes llamar<br>
* <code>printMonthOfYear()</code>Establece un parámetro para imprimir la fecha de un determinado mes<br>
* A continuación se muestran algunos planes de referencia:<br>
*
* <pre>
* // Sin parámetros, el sistema utiliza por defecto el año actual
* fecha HongtenDate = nueva fecha HongtenDate();
* fecha.printCalendar();
* fecha.printCurrentMonth();
* fecha.printMonthOfYear(4);
* </pre>
*
*o<br>
*
* <pre>
* // Establecido en 2014
* HongtenDate hd = nuevo HongtenDate(2014);
* hd.printCurrentMonth();
* hd.printMonthOfYear(1);
* </pre>
*
* @fecha 2013-4-27
* @autor hongten
*
*/
clase pública HongtenDate {
//MESES
// ==============================================
cadena final estática pública ENERO = "Enero";
cadena final estática pública FEBRERO = "febrero";
cadena final estática pública MARZO = "Marzo";
cadena final estática pública ABRIL = "abril";
cadena final estática pública MAYO = "mayo";
cadena final estática pública JUN = "Jun";
cadena final estática pública JULIO = "julio";
cadena final estática pública AGOSTO = "agosto";
cadena final estática pública SEPTIEMBRE = "septiembre";
cadena final estática pública OCTUBRE = "octubre";
cadena final estática pública NOVIEMBRE = "noviembre";
cadena final estática pública DICIEMBRE = "diciembre";
/**
* año
*/
año int privado;
/**
* El día de la semana el 1 de enero (por ejemplo: 2013-01-01-->martes, entonces <code>whatDayOnJanuaryOne = 2;</code>)
*/
privado int whatDayOnJanuaryOne;
// principal
// ========================================
public static void main (String [] args) lanza una excepción {
// Sin parámetros, el sistema utiliza por defecto el año actual
fecha HongtenDate = nueva fecha HongtenDate();
//fecha.printCalendar();
fecha.printCurrentMonth();
// fecha.printMonthOfYear(4);
// Establecido en 2014
HongtenDate hd = nueva HongtenDate(2014);
// hd.printCurrentMonth();
// hd.printMonthOfYear(1);
}
// Sin parámetros, el sistema utiliza por defecto el año actual
fecha pública Hongten() {
Calendario cal = Calendar.getInstance();
este.año = cal.get(Calendario.AÑO);
intentar {
setWhatDayOnJanuaryOne(getEneroUno(año));
} captura (Excepción e) {
e.printStackTrace();
}
}
//Con parametros establecemos el año
public HongtenDate(int año) {
este.año = año;
intentar {
setWhatDayOnJanuaryOne(getEneroUno(año));
} captura (Excepción e) {
e.printStackTrace();
}
}
/**
* Imprimir todas las fechas de un mes determinado.
*
* @parammon
* mes
* @throwsException
*/
public void printMonthOfYear (int mon) lanza una excepción {
si (lun < 1 || lun > 12) {
System.out.println("El mes que ingresó [" + mon + "] es incorrecto, verifique en progreso...");
devolver;
}
GregorianCalendar ahora = nuevo GregorianCalendar();
//Obtener un objeto de fecha
SimpleDateFormat sdf = new SimpleDateFormat("aaaa-MM-dd");
Fecha fecha = sdf.parse(año + "-" + lunes + "-01");
//Establece la hora actual
ahora.setTime(fecha);
//Obtiene el mes actual a partir de la fecha
int mes = ahora.get(Calendario.MES);
//Establece la fecha de ahora en 1
now.set(Calendario.DAY_OF_MONTH, 1);
// Obtener el día de la semana actual
int semana = ahora.get(Calendar.DAY_OF_WEEK);
//Imprimir etiqueta de encabezado del calendario
System.out.println("日/t一/t二/t三/t四/t五/t六");
//Imprime el espacio antes de la fecha actual
for (int i = Calendario.DOMINGO; i < semana; i++) {
System.out.print("/t");
}
//Imprime el cuerpo del calendario
mientras (ahora.get(Calendario.MES) == mes) {
int día = ahora.get(Calendar.DAY_OF_MONTH);
//Alinea el calendario de salida, agrega un espacio si es menor que 10
si (día < 10) {
System.out.print(" " + día + "/t");
} demás {
System.out.print("" + día + "/t");
}
// Si es sábado, cierra la línea
if (semana == Calendario.SÁBADO) {
Sistema.out.println();
}
// Cada vez que se muestra la fecha, agrega un día a la fecha
ahora.add(Calendario.DAY_OF_MONTH, 1);
// Recupera el día de la semana
semana = ahora.get(Calendario.DAY_OF_WEEK);
}
}
/**
*Imprimir todas las fechas del mes actual, esto no cambiará dependiendo del año establecido por el usuario
*/
public void printCurrentMonth() {
GregorianCalendar ahora = nuevo GregorianCalendar();
//Obtener un objeto de fecha
Fecha fecha = nueva Fecha();
//Establece la hora actual
ahora.setTime(fecha);
//Obtener el día actual a partir de la fecha
int toDay = now.get(Calendar.DAY_OF_MONTH);
//Obtiene el mes actual a partir de la fecha
int mes = ahora.get(Calendario.MES);
//Establece la fecha de ahora en 1
now.set(Calendario.DAY_OF_MONTH, 1);
// Obtener el día de la semana actual
int semana = ahora.get(Calendar.DAY_OF_WEEK);
//Imprimir etiqueta de encabezado de calendario
System.out.println("日/t一/t二/t三/t四/t五/t六");
//Imprime el espacio antes de la fecha actual
for (int i = Calendario.DOMINGO; i < semana; i++) {
System.out.print("/t");
}
//Imprime el cuerpo del calendario
while (ahora.get(Calendario.MES) == mes) {
int día = ahora.get(Calendar.DAY_OF_MONTH);
//Alinea el calendario de salida, agrega un espacio si es menor que 10
si (día < 10) {
// Si es la fecha actual, agrega una etiqueta
si (día == hoy) {
System.out.print(":)" + día + "(:/t");
} demás {
System.out.print(" " + día + "/t");
}
} demás {
// Si es la fecha actual, agrega una etiqueta
si (día == hoy) {
System.out.print(":)" + día + "(:/t");
} demás {
System.out.print("" + día + "/t");
}
}
// Si es sábado, cierra la línea
if (semana == Calendario.SÁBADO) {
Sistema.out.println();
}
// Cada vez que se muestra la fecha, agrega un día a la fecha
ahora.add(Calendario.DAY_OF_MONTH, 1);
// Recupera el día de la semana
semana = ahora.get(Calendario.DAY_OF_WEEK);
}
}
/**
* Obtenga el día de la semana en que es el 1 de enero de este año.
*
* @param año
* año
* @devolver
* @throwsException
*/
public int getJanuaryOne(int año) lanza una excepción {
int[] díasdesemana = { 0, 1, 2, 3, 4, 5, 6 };
Calendario cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("aaaa-MM-dd");
Fecha dt = sdf.parse(año + "-01-01");
cal.setTime(dt);
int w = cal.get(Calendario.DAY_OF_WEEK) - 1;
si (w < 0)
w = 0;
devolver días de la semana[w];
}
/**
*Imprimir todos los meses del año
*/
imprimirCalendario vacío público() {
para (int i = 1; i <= 12; i++) {
Mes de cadena = getMonth(i);
imprimirTítulo(mes);
//Imprimir meses con 31 días
si (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12) {
imprimir31();
}
//Imprime el mes con 30 días
de lo contrario si (i == 4 || i == 6 || i == 9 || i == 11) {
imprimir30();
}
// imprimir febrero
de lo contrario si (i == 2) {
printfebrero();
}
Sistema.out.println();
}
}
//Formato de impresión
// ============================================= inicio
/**
* Imprimir febrero. Febrero puede ser diferente en cada año, por lo que debe procesarse por separado.
*/
printFebrero vacío protegido() {
if (este.año % 4 == 0) {
// año bisiesto
imprimirAñoLeap();
} demás {
// año normal
printAñoNobisiesto();
}
}
/**
*Formato de impresión de febrero en año bisiesto.
*/
vacío privado printLeapYear() {
para (int j = 1; j <= 29; j++) {
Cadena tmp = "";
si (j == 1) {
for (int k = 1; k <= this.whatDayOnJanuaryOne % 7; k++) {
tmp = tmp + " ";
}
tmp = tmp + " " + j + " ";
if (este.quéDíaEnEneroUno == 6) {
System.out.println(tmp);
} demás {
System.out.print(tmp);
}
} si no (j > 1 && j < 29) {
if ((este.quéDíaEnEneroUno + j) % 7 == 0) {
System.out.println(" " + j);
} demás {
si (j < 10) {
System.out.print(" " + j + " ");
} demás {
System.out.print(" " + j + " ");
}
}
} si no (j == 29) {
System.out.println(" " + j);
this.whatDayOnJanuaryOne = ((this.whatDayOnJanuaryOne + j) % 7);
}
}
}
/**
*Imprimir el formato de febrero en años ordinarios
*/
impresión vacía privadaNonleapYear() {
para (int j = 1; j <= 28; j++) {
Cadena tmp = "";
si (j == 1) {
for (int k = 1; k <= this.whatDayOnJanuaryOne % 7; k++) {
tmp = tmp + " ";
}
tmp = tmp + " " + j + " ";
if (este.quéDíaEnEneroUno == 6) {
System.out.println(tmp);
} demás {
System.out.print(tmp);
}
} si no (j > 1 && j < 28) {
if ((este.quéDíaEnEneroUno + j) % 7 == 0) {
System.out.println(" " + j);
} demás {
si (j < 10) {
System.out.print(" " + j + " ");
} demás {
System.out.print(" " + j + " ");
}
}
} si no, si (j == 28) {
System.out.println(" " + j);
this.whatDayOnJanuaryOne = ((this.whatDayOnJanuaryOne + j) % 7);
}
}
}
/**
* Imprimir meses con 30 días.
*/
print30 vacío protegido() {
para (int j = 1; j <= 30; j++) {
Cadena tmp = "";
si (j == 1) {
for (int k = 1; k <= this.whatDayOnJanuaryOne % 7; k++) {
tmp = tmp + " ";
}
tmp = tmp + " " + j + " ";
if (este.quéDíaEnEneroUno == 6) {
System.out.println(tmp);
} demás {
System.out.print(tmp);
}
} si no (j > 1 && j < 30) {
if ((este.quéDíaEnEneroUno + j) % 7 == 0) {
System.out.println(" " + j);
} demás {
si (j < 10) {
System.out.print(" " + j + " ");
} demás {
System.out.print(" " + j + " ");
}
}
} más si (j == 30) {
System.out.println(" " + j);
this.whatDayOnJanuaryOne = ((this.whatDayOnJanuaryOne + j) % 7);
}
}
}
/**
* Imprimir meses con 31 días.
*/
vacío protegido print31() {
para (int j = 1; j <= 31; j++) {
Cadena tmp = "";
si (j == 1) {
for (int k = 1; k <= this.whatDayOnJanuaryOne % 7; k++) {
tmp = tmp + " ";
}
tmp = tmp + " " + j + " ";
if (este.quéDíaEnEneroUno == 6) {
System.out.println(tmp);
} demás {
System.out.print(tmp);
}
} si no (j > 1 && j < 31) {
if ((este.quéDíaEnEneroUno + j) % 7 == 0) {
System.out.println(" " + j);
} demás {
si (j < 10) {
System.out.print(" " + j + " ");
} demás {
System.out.print(" " + j + " ");
}
}
} si no (j == 31) {
System.out.println(" " + j);
this.whatDayOnJanuaryOne = ((this.whatDayOnJanuaryOne + j) % 7);
}
}
}
/**
*Imprimir el título de cada mes
*
* @param mes
*/
título de impresión vacío protegido (mes de cadena) {
System.out.println(" " + mes + " " + este.año + " ");
System.out.println("------------------------------------------- -- --");
System.out.println("domingo lunes martes miércoles jueves viernes sábado");
}
//Formato de impresión
// =============================================== final
/**
* Obtén el nombre del mes en inglés.
*
* @param m
* Representación numérica del mes.
* @devolver
*/
Cadena pública getMes (int m) {
Mes de cadena = "";
cambiar (m) {
caso 1:
mes = ENERO;
romper;
caso 2:
mes = FEBRERO;
romper;
caso 3:
mes = MARZO;
romper;
caso 4:
mes = ABRIL;
romper;
caso 5:
mes = MAYO;
romper;
caso 6:
mes = JUN;
romper;
caso 7:
mes = JULIO;
romper;
caso 8:
mes = AGOSTO;
romper;
caso 9:
mes = SEPTIEMBRE;
romper;
caso 10:
mes = OCTUBRE;
romper;
caso 11:
mes = NOVIEMBRE;
romper;
caso 12:
mes = DICIEMBRE;
romper;
}
mes de devolución;
}
público int getAño() {
año de retorno;
}
setYear público vacío (int año) {
este.año = año;
}
público int getWhatDayOnJanuaryOne() {
devolver whatDayOnJanuaryOne;
}
public void setWhatDayOnJanuaryOne (int whatDayOnJanuaryOne) {
this.whatDayOnJanuaryOne = whatDayOnJanuaryOne;
}
}