Java acelerado
/**
* @(#)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(){ 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(cadena de mes)
*@monthEl mes en la fecha del sistema, como enero\febrero
*@return int p>
*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ú.