⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calendarfrm.java

📁 酒店管理系统后台数据库存储过程
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        }
        String showDateTime = year + "年" + month + "月" + date + "日" + " 星期"+xingqi;
        this.txtShowDayTime.setText(showDateTime);

        //设置月份下拉框的默认选项,既选择当前月份为默认选项
        this.cboMonth.setSelectedIndex(Integer.parseInt(month) - 1);
        spinDate.setValue(new Integer(year));
       // System.out.println(year + " " + month + "  " + date); //测试截取当前日期
        //调用计算星期的方法
        int day = getDay(year, month);

      //  System.out.println("1号是星期:" + day); //测试输出当月1号的星期数
        //调用计算日期的方法
        int days = getMonthDays(year, month);
        //调用显示日历的方法
        showCalendar(day, days, Day);

    }

    //得到某年的某月是星期几
    public int getDay(String ye, String mon) {

        int year, month, date = 1, num = 0, xingqi;
        year = Integer.parseInt(ye);
        month = Integer.parseInt(mon);

        /*输入闰年时的情况*/
        if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { //判断是不是闰年
            if (month == 3 || month == 4 || month == 5 || month == 6 ||
                month == 7 || month == 8 || month == 10 || month == 12) {
                num = (month - 1) * 30 + date + month / 2 - 1;
            } else if (month == 1) {
                num = (month - 1) * 30 + date;
            }

            else if (month == 9 || month == 11) {
                num = (month - 1) * 30 + date + month / 2 - 1 + 1;
            } else if (month == 2) {
                num = (month - 1) * 30 + date + 1;
            }

        }
        /*输出平年时的情况*/
        /*num 是某年某月某日到用户所要查询日期之间的天数*/
        else {
            if ((month >= 3 && month < 8) || month == 10 || month == 12) {
                num = (month - 1) * 30 + date + month / 2 - 2;
            } else if (month == 9 || month == 11) {
                num = (month - 1) * 30 + date + month / 2 - 2 + 1;
            } else if (month == 1) {
                num = (month - 1) * 30 + date;
            } else if (month == 2) {
                num = (month - 1) * 30 + date + 1;
            }
        }
        //计算星期几
        xingqi = ((year - 1) + (year - 1) / 4 + (year - 1) / 100 +
                  (year - 1) / 400 + num + 2) % 7;

        if (year <= 2000) {
            xingqi += 2;
        }
        return xingqi;
    }

    //得到每个月的天数,ye代表年份,mon代表月份
    public int getMonthDays(String ye, String mon) {
        int year, month, days = 0;
        year = Integer.parseInt(ye);
        month = Integer.parseInt(mon);
        if (((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) &&
            month == 2) {
            days = 29;
        } else if (month == 2) {
            days = 28;
        } else if (month == 1 || month == 3 || month == 5 || month == 7 ||
                   month == 8 || month == 10 || month == 12) {
            days = 31;
        } else {
            days = 30;
        }
        return days;
    }

    //day是当月一号星期几,days代表当月天数
    public void showCalendar(int day, int days, int Day) {
        dmt = new DefaultTableModel();
        dmt.addColumn("日");
        dmt.addColumn("一");
        dmt.addColumn("二");
        dmt.addColumn("三");
        dmt.addColumn("四");
        dmt.addColumn("五");
        dmt.addColumn("六");
        this.tblCalendar.setModel(dmt);

        //date代表每月的一号
        int date = 1;

        for (int row = 0; row < 6; row++) {
            boolean flag = false;
            Vector v = new Vector();
            for (int col = 0; col < 7; col++) {

                if (row == 0 && col < day) { //打印第一行的空格
                    v.add("");
                    continue;
                }
                if (row == 0 && col >= day) { //从一号是星期几开始,添加日期
                    v.add("" + date);
                    date++;
                    continue;
                }

                v.add("" + date);

                //设置当日期等于当月的天数是退出循环
                if (date == days) {
                    flag = true;
                    break;
                }
                date++;
            }
            //添加表格模型列
            dmt.addRow(v);
            if (flag == true) {
                break;
            }
        }
        //模型添加到表格中
        this.tblCalendar.setModel(dmt);

    }


    public void showCalendarNext() {
        int monthIndex = this.cboMonth.getSelectedIndex();
        String year = this.spinDate.getValue().toString(); //得到用户选择的年份年份
        String month = ""; //得到用户选择的月份

        switch (monthIndex) {
        case 0:
            month = "01";
            break;
        case 1:
            month = "02";
            break;
        case 2:
            month = "03";
            break;
        case 3:
            month = "04";
            break;
        case 4:
            month = "05";
            break;
        case 5:
            month = "06";
            break;
        case 6:
            month = "07";
            break;
        case 7:
            month = "08";
            break;
        case 8:
            month = "09";
            break;
        case 9:
            month = "10";
            break;
        case 10:
            month = "11";
            break;
        case 11:
            month = "12";
            break;
        }

        //计算当月1号是星期几
        int day = getDay(year, month);
        //计算当月有多少天
        int days = getMonthDays(year, month);
        Date cal = new Date();
        int Day = cal.getDay();
        //显示拥护选择的月份的日历;
        showCalendar(day, days, Day);

    }


    //当月份下拉框选乡发生改变 的时候
    public void cboMonth_itemStateChanged(ItemEvent e) {
        showCalendarNext();

    }

    public void spinDate_stateChanged(ChangeEvent e) {

        showCalendarNext();
    }

    public void btnOK_actionPerformed(ActionEvent e) {
        this.dispose();
    }


}


class CalendarFrm_btnOK_actionAdapter implements ActionListener {
    private CalendarFrm adaptee;
    CalendarFrm_btnOK_actionAdapter(CalendarFrm adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.btnOK_actionPerformed(e);
    }
}


class CalendarFrm_cboMonth_itemAdapter implements ItemListener {
    private CalendarFrm adaptee;
    CalendarFrm_cboMonth_itemAdapter(CalendarFrm adaptee) {
        this.adaptee = adaptee;
    }

    public void itemStateChanged(ItemEvent e) {
        adaptee.cboMonth_itemStateChanged(e);
    }
}


class CalendarFrm_spinDate_changeAdapter implements ChangeListener {
    private CalendarFrm adaptee;
    CalendarFrm_spinDate_changeAdapter(CalendarFrm adaptee) {
        this.adaptee = adaptee;
    }

    public void stateChanged(ChangeEvent e) {
        adaptee.spinDate_stateChanged(e);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -