Java acelerado

Código de calendario perpetuo:

/**

* @(#)AidyCalender.java

*

*

* @autor

* @versión 1.00 2008/7/19

*/

Importar Java

. > importar java.awt.event.*;

importar java.lang.string buffer;

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();

//Definir matrices de caracteres chinos e ingleses para almacenar información de la semana Realice la visualización de conversió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(este) ;

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(new font("新歌体", 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(){

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(cadena de mes)

*@monthEl 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;

}

/**

*Establecer fecha()

*Establecer fecha actual del sistema

*/

public void setNowDate(){

setSysDate(getnoweyear ( ), getnowmount());

getSysRunDate();

setdate null();

combo 1. setselectedindex(getShowYear()-1900); /p>

combo 2. setselectedindex(getShowMonth());

setDays(getMonthDays(getnowhear(), getNowMonth()), getInitWeek(sysRunTime[0]), getNowDay()); /p>

//etiqueta de tiempo . settext(sysNowTime[3]);

//etiqueta de tiempo . p>/* *Integer getShowYear()

* Obtiene el año que debe mostrarse en el cuadro combinado.

*/

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 meses restantes son meses grandes y regresan 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:

si(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()

*En el cuadro combinado Obtener el año

*/

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(){

Combo de retorno 2. getselectedindex();

}

public int getInitWeek(String init semana ){

/**

*getWeekNow(string initWeek)

* @ para ahora semana semana semana en fecha del sistema

* ¿Qué día del mes empieza a volver al 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; i lt12;i){

if(sysNowTime[1].equalsIgnoreCase(string mesen[I]);

ahora mes = I;

descanso;

}

Devuelve mensualmente inmediatamente

}

public int getNowDay(){

Devuelve un número entero. int(sysNowTime[2]);

}

Entero público getShowYear(){

Devuelve un entero. parse int(sysNowTime[5]); p>

}

Entero público getShowMonth(){

/**

*Entero getShowMonth()

*Obtener 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 MonthDays, int initWeek). , int día){

/**

*void setDays(int mesDías, int initSemana, int día)

*@para mesDías Número de días en este mes

*@para initWeek primera semana

* @Today Para día

*Establecer calendario mensual

*/

setdate null();

for(int I = semana inicial; i ltinit 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(new font("bold", font. negrita, 20));

}else if((i7==0)||(i7==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[])

{

Pruebe {

ui manager . setlookandfeel(ui manager . getsystemlookandfeelclassname( ) );

}catch(Exception e){

Lanza una nueva excepción de tiempo de ejecución(e);

}

Aidy Calendar var = Nuevo Calendario Aidy ("Programa Calendario Perpetuo-Aidy");

}

}

El código del bloc de notas no se puede pegar aquí. tú.