El calendario JAVA puede cumplir con los siguientes requisitos y cada línea debe indicar su función. Pídele a Dios respuestas
Importar Java . awt *;
Importar Java . /p>
p>
Importar javax.swing.*;
Importar Java.util.*;
Importar javax.swing.timer;
Importar javax. swing border *;
La clase pública AidyCalender extiende JFrame para implementar ActionListener,
ItemListener {
Fecha Fecha = nueva Fecha( );
calendario gregoriano privado Calendario gregoriano = nuevo calendario gregoriano();
//Defina matrices de caracteres chinos e ingleses para almacenar información semanal para conversión y visualización.
private String[]String fin de semana = new String[]{ " DOM ", " MON ", " TUE ", " MIE ",
"JUE", "Viernes", "Sábado"};
cadena privada[]string semanacn = nueva cadena[]{ "Domingo", "Lunes", "Martes", "Miércoles",
"Semana " Cuatro", "Viernes", "Sábado";
//Defina la matriz de información para almacenar el mes para la visualización de la conversión.
private String[]String mes = new String[]{ " Ene ", " Feb ", " Mar ", " Abr ",
"May", "June" " , "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"};
Private String[] stringMonthCn = { " enero", "febrero", "marzo ", "Abril", "Mayo", "Junio",
Julio, Agosto, Septiembre, Octubre, Noviembre y Diciembre;
private String[]sysNowTime = new String[ 6]; // sysNowTime es una variable utilizada para almacenar la hora del sistema.
Cadena privada[]sys runtime = nueva Cadena[6];
JLabel privada[]etiqueta semana = nueva JLabel[7];
JLabel privada[ ]día de la etiqueta = nuevo JLabel[42];
hora de la etiqueta JLabel privada = nuevo JLabel();
Panel JPanel privado 1 = nuevo JPanel();
panel JPanel privado 2 = nuevo JPanel();
panel JPanel privado 3 = nuevo JPanel();
combo JComboBox privado 1 = nuevo JComboBox();
combo JComboBox privado 2 = nuevo JComboBox();
botón JButton privado hoy = nuevo JButton();
Borde privado Borde = Fábrica de bordes createraisedbevelborder();
Borde privado Borde 1 = Fábrica de bordes. crear línea Borde(color . cian, 3);
AidyCalender público(título de cadena) {
Super(Título); /p>
for(int y = 1900; y lt2101; y ) {
Combo1. additem(" Nuevo entero (y). tostring() " Año ");
}
for(int m = 0; m lt12; m ) {
combo 2 . additem(" stringMonthCn[m]);
}
botón hoy . settext(" hoy ");
establecer diseño (nuevo diseño de flujo());
añadir(panel 1);
añadir (panel 2);
añadir (panel 3);
panel1.setLayout(new GridLayout(1, 3, 10, 0));
panel 1. add(combo 1);
combo 1. additem oyente(this) ;
panel 1 . agregar(combo 2);
combo 2 . additem oyente(este);
panel 1 . /p>
botón hoy . addactionlistener(this);
LabelTime.setFont(newFont("ì",Font.Plain,16));
labelTime.setForeground ( Color.
magenta);
panel 1. add(etiqueta de tiempo);
Tiempo del temporizador = nuevo temporizador(1000, nuevo temporizador oyente());
tiempo . addActionListener(new timer listener());
//time . set repeticiones(true);
time start();
//etiqueta de tiempo. addancestorlistener(new timer listener());
panel 2 . blanco);
for(int I = 0;ilt7;i) {
etiqueta semana[I]= new JLabel();
etiquetaSemana[. i]. alineación horizontal(0);
if (i == 0 || i == 6) {
labelWeek[i]. establecer fondo(color . azul);
labelWeek[i]. setForeground(color.rojo);
LabelWeek[i]. setFont(newFont("bold", font. negrita, 14));
}
else {
labelWeek[i]. setForeground(color.negro);
LabelWeek[i]. setFont(newFont("Nuevo estilo de canción",Font.Plain,14));
}
labelWeek[i]. setText(string semanacn[I]);
panel 2. add(label semana[I]);
}
for(int I = 0; i lt42;i) {
día de etiqueta[I]= new JLabel();
día de etiqueta[i]. alineación sehorizontal(0);
Día de la etiqueta[i]. setText(" ");
panel 2. add(label día[I]);
}
addWindowListener(nuevo adaptador de ventana(){ p>
cierre de ventana vacía pública (evento de ventana e){
sistema de salida (0);
}
});
setSize(300, 300);
setBounds(250, 200, 400, 360);
set visible(true); (falso);
setDefaultCloseOperation(JFrame.
EXIT _ ON _ CLOSE);
obtener sysdate();
setNowDate()
}
acción de anulación pública realizada( evento de acción AE){
if(AE . getsource()= = botón hoy){
setNowDate();
}
}
public void itemStateChanged(evento de elemento aa){
setChangeDate();
}
public int turnWeek(cadena semana ){
int I;
for(I = 0;ilt7;i)
if(semana . igualdadsignorecase(cadena fin de semana[I]) )
Pausa;
Regreso I;
}
mes de turno público int (mes de cadena){
/ **
* int turnMonth(string mes)
*
* @month El mes en la fecha del sistema, como enero\febrero
* @return int Devuelve un valor entero utilizado para encontrar el mes chino correspondiente en la matriz stringMonthCn[].
*/
int I;
for(I = 0;ilt12;i)
if(mes . igualsignorecase( cadena mes[I]))
Romper;
Regresar I;
}
/**
* setNowDate() establece la fecha actual del sistema.
*/
public void setNowDate() {
setSysDate(getnoweyear(), getnowmount());
getSysRunDate() ;
setdate null();
combo 1. setselectedindex(getShowYear()-1900);
combo 2. setselectedindex(getShowMonth());
setDays(getMonthDays(getnowhear(), getNowMonth()),
getInitWeek(sysRunTime[0]), getNowDay();
//etiqueta de hora. settext(sysNowTime[3]);
//etiqueta de tiempo alineación horizontal(0);
}
/**
*/
public void setSysDate(int año, int mes) {
gregorianCalendar.set(año, mes, 1);
}
public void setDateNull() {
for(int I = 0;i lt42;i) {
Fecha de etiqueta[i]. setText(" ");
}
}
public void setChangeDate() {
setSysDate(getComboYear(), getComboMonth( ));
getSysRunDate();
setdate null();
setDays(getMonthDays(getComboYear(), getComboMonth()),
getInitWeek(sysRunTime[0]), -1);
}
public int getMonthDays(int año, int mes) {
/* **
*Devuelve el número de días del año y mes seleccionados. Debido a que los valores en la matriz comienzan desde 0, 3\5\8\10 representan 4\6\9\11 meses respectivamente.
*El 1 representa febrero. Después de determinar si es un año bisiesto, opta por volver al 28 o al 29. Los demás meses son todos meses grandes, de 31 días.
**/
Cambiar (mes){
Caso 3:
Caso 5:
Caso 8:
Caso 10:
Devolución 30; //Devolución 30 días por aborto espontáneo
Caso 1:
if(calendario gregoriano . isleapyear(year)){
// isLeapYear(year) determina si el año especificado en la era actual es bisiesto.
Devuelve 29;
} En caso contrario {
Devuelve 28;
}//Febrero devuelve 29 días en un año bisiesto y 28 días en un año normal.
Valor predeterminado:
Devuelve 31;
//Dayue devuelve 31 días.
}
}
/**
* int getComboYear() Obtiene el año en el cuadro combinado.
*/
public void getSysDate() {
fecha = calendario gregoriano gettime();
sysNowTime = (fecha. toString()). split(" ");
}
public void getSysRunDate() {
fecha = calendario gregoriano gettime();
. sysRunTime = (fecha.toString()). split(" ");
}
public int getComboYear() {
devuelve combo 1 . getselectedindex() 1900;
}
/**
* int getComboMonth() Obtiene el valor entero en el cuadro combinado del mes.
*/
public int getComboMonth() {
Devolver combo 2. getselectedindex();
}
public int getInitWeek(String init semana){
/**
* getWeekNow(String initWeek)
*
* @para nowWeek, la semana en la fecha del sistema vuelve a ser un día del mes que comienza con el número 1.
*/
int ahora semana = 0
for(int I = 0;ilt7;i) {
if ( semana de inicio . igualsignorecase(string semana[I]){
ahora semana = I
Descanso
}
}
Regresar inmediatamente la próxima semana;
}
public int getnoweyear(){
Devolver entero. parse int(sysNowTime[5] ) ;
}
public int getNowMonth() {
int ahora mes = 0;
for(int I = 0; ilt12 ;i) {
if (sysNowTime[1].equalsIgnoreCase(string mesen[I]))
;
ahora mes = I;
>Pausa;
}
Retorno mensual inmediato;
}
public int getNowDay() {
Devuelve un entero. parse int(sysNowTime[2]);
}
Entero público getShowYear() {
Devuelve un entero parse. [5]);
}
Entero público getShowMonth() {
/**
* Entero getShowMonth() Obtiene el mes en formato chino que se muestra en el cuadro de grupo, como julio \ agosto, etc.
*/
return turn Month(sysNowTime[1]);
}
public void setDays(int mesDías, int initWeek, int día) {
/**
* void setDays(int mesDías, int initWeek, int day)
*
* @para MonthDays Número de días de este mes
* @para initWeek primera semana
* @ para día Configura el calendario para hoy.
*/
setdate null();
for(int I = semana inicial; iltinit semana mes días 1; i) {
if ((i - initWeek 1) == día) {
Etiquetar día[i]. establecer borde(borde 1);
Fecha de etiqueta[i]. setForeground(color.blue);
Día de la etiqueta[i]. setFont(newFont("bold", font. negrita, 20));
} else if ((i 7 == 0) || (i 7 == 6))
Día de la etiqueta[i]. setForeground(color.red);
else {
Día de la etiqueta[i]. setForeground(color.black);
}
Día de la etiqueta[i]. setText(string . value of(I-init semana 1));
}
for(int I = init semana mes días; I lt42; i)
Día de la etiqueta[i]. setText(" ");
}
Clase TimerListener implementa ActionListener {
//adapter demovar = nuevo adaptador demo("Programa de calendario perpetuo-Aidy ")
Acción de anulación pública realizada (evento de acción e){
Calendario gregoriano g = nuevo calendario gregoriano();
Cadena de reloj = nueva cadena((g). gettime().toString().split(" ")[3]);
labelTime.setText(reloj); / p>
Public static void main(String args[]) {
Prueba {
ui manager . setlookandfeel(ui manager . getsystemlookandfeelclassname()
);} catch(Exception e) {
Lanzar nueva excepción de tiempo de ejecución(e);
}
Calendario Aidy var = nuevo calendario Aidy(" Perpetuo Programa de calendario: en línea");
}
}