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

📄 wannianli.java

📁 电子万年历的java
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                date1 = new Date(year, month, m);
                if (error > date1.getDate()) {
                    break;
                }
                error = date1.getDate();
            }
            for (int i = m + 7 + day1 - 1; i < 49; i++) {
                day[i].setText("");
                dayB[i - 7].setEnabled(false);
            }
            cp.setVisible(false);
            cp.setVisible(true);
        } catch (Exception e) {}
    }

    public void actionPerformed(ActionEvent ae) {
        //System.out.println("sasas");
        if (ae.getSource().equals(button2)) {
            this.dispose();
        }
        if (ae.getSource().equals(button1)) {
            try {
                int yearIn = Integer.parseInt(year.getText()) - 1900;
                int monthIn = Integer.parseInt(month.getText()) - 1;
                if ((monthIn < 0) || (monthIn > 11)) {
                    throw new Exception("month");
                }
                building(new Date(yearIn, monthIn, 1));
                //return;
            } catch (Exception ex) {
                year.setText("数据输入");
                month.setText("错误");
                //return;
            }
        }
        for (int i = 0; i < 42; i++) {
            if (ae.getSource().equals(dayB[i])) {
                try {
                    int yearIn = Integer.parseInt(year.getText()) - 1900;
                    int monthIn = Integer.parseInt(month.getText()) - 1;
                    int dayIn = Integer.parseInt(day[i + 7].getText());
                    if ((monthIn < 0) || (monthIn > 11)) {
                        throw new Exception("month");
                    }
                    ((WanNianLi)owner).showDateMessage(new NongliDates(new Date(yearIn, monthIn, dayIn)));
                    //return;
                } catch (Exception ex) {
                    year.setText("数据输入");
                    month.setText("错误");
                    //return;
                }

            }
        }
    }
//public static void main(String args[]){
//	Dates d=new Dates();
//	d.setVisible(true);
//}
}


class WanNianLi_jButton6_actionAdapter implements ActionListener {
    private WanNianLi adaptee;
    WanNianLi_jButton6_actionAdapter(WanNianLi adaptee) {
        this.adaptee = adaptee;
    }

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


//农历万年历日期类
class NongliDates {
    static String[] WeekName = new String[8];
    static String[] TianGan = new String[10];
    static String[] DiZhi = new String[12];
    static String[] ShuXiang = new String[12];
    static String[] DayName = new String[31];
    static String[] MonName = new String[13];
    static int[] MonthAdd = new int[12];
    static int[] NongliData = new int[100];

    //公历的年、月、日
    int curYear;
    int curMonth;
    int curDate;
    int curWeek;

    //农历的年、月、日
    int curYear2;
    int curMonth2;
    int curDate2;
    int curWeek2;

    //农历文本信息
    String NongliStr = "";
    String NongliDayStr = "";

    //节日文本信息
    String JieRi="";


    public NongliDates(Date date) {
        curYear = date.getYear() + 1900;
        curMonth = date.getMonth()+1;
        curDate = date.getDate();
        curWeek = date.getDay();
        System.out.println(curYear);
        System.out.println(curMonth);
        System.out.println(curDate);
        System.out.println(curWeek);
        calculate(From1921());
        System.out.println( NongliStr);
        System.out.println(NongliDayStr);
        getFestival();
        System.out.println(JieRi);

    }

    int From1921() {
        int TheDate = (curYear - 1921) * 365 + (curYear - 1921) / 4 + curDate +
                      MonthAdd[curMonth - 1] - 38;
        if ((curYear % 4) == 0
            && (curMonth > 2)) {

            TheDate = TheDate + 1;
        }
        return TheDate;
    }

    void calculate(int TheDate) {
        int isEnd = 0;
        int m = 0, k = 0, n = 0;
        while (true) {
            if (NongliData[m] < 4095) {
                k = 11;
            } else {
                k = 12;
            }
            n = k;
            while (true) {
                if (n < 0) {
                    break;
                }
                int bit = NongliData[m];
                for (int i = 1; i < n + 1; i++) {
                    bit = bit / 2;
                }
                bit = bit % 2;
                if (TheDate <= 29 + bit) {
                    isEnd = 1;
                    break;
                }
                TheDate = TheDate - 29 - bit;
                n = n - 1;
            }
            if (isEnd == 1) {
                break;
            }
            m = m + 1;
        }
        curYear2 = 1921 + m;
        curMonth2 = k - n + 1;
        curDate2 = TheDate;

        if (k == 12) {
            if (curMonth2 == ((int) (NongliData[m] / 65536) + 1)) {
                curMonth2 = 1 - curMonth2;
            } else if (curMonth2 > ((int) (NongliData[m] / 65536) + 1)) {
                curMonth2 = curMonth2 - 1;
            }
        }
        NongliStr = "农历" + TianGan[((curYear2 - 4) % 60) % 10] +
                    DiZhi[((curYear2 - 4) % 60) % 12] + "年";
        NongliStr = NongliStr + "(" + ShuXiang[((curYear2 - 4) % 60) % 12] + ")";

        //'生成农历月、日   ==>   NongliDayStr
        if (curMonth2 < 1) {
            NongliDayStr = "闰" + MonName[ -1 * curMonth2];

        } else {
            NongliDayStr = NongliDayStr + MonName[curMonth2];
        }
        NongliDayStr = NongliDayStr + "月";
        NongliDayStr = NongliDayStr + DayName[curDate2];
        //MsgBox   NongliStr   &   NongliDayStr
    }

    void getFestival(){
        System.out.println(curDate);
        System.out.println(curMonth);
        if(curDate==1 && curMonth==10){
            JieRi=JieRi+"中华人民共和国国庆节  ";
        }
        if(curDate2==30 && curMonth2==12){
            JieRi=JieRi+"春节  ";
        }

    }


    public static void init() {
        //星期名
        WeekName[0] = "   *   ";
        WeekName[1] = "星期日";
        WeekName[2] = "星期一";
        WeekName[3] = "星期二";
        WeekName[4] = "星期三";
        WeekName[5] = "星期四";
        WeekName[6] = "星期五";
        WeekName[7] = "星期六";
        //天干名称
        TianGan[0] = "甲";
        TianGan[1] = "乙";
        TianGan[2] = "丙";
        TianGan[3] = "丁";
        TianGan[4] = "戊";
        TianGan[5] = "己";
        TianGan[6] = "庚";
        TianGan[7] = "辛";
        TianGan[8] = "壬";
        TianGan[9] = "癸";
        //地支名称
        DiZhi[0] = "子";
        DiZhi[1] = "丑";
        DiZhi[2] = "寅";
        DiZhi[3] = "卯";
        DiZhi[4] = "辰";
        DiZhi[5] = "巳";
        DiZhi[6] = "午";
        DiZhi[7] = "未";
        DiZhi[8] = "申";
        DiZhi[9] = "酉";
        DiZhi[10] = "戌";
        DiZhi[11] = "亥";
        //属相名称
        ShuXiang[0] = "鼠";
        ShuXiang[1] = "牛";
        ShuXiang[2] = "虎";
        ShuXiang[3] = "兔";
        ShuXiang[4] = "龙";
        ShuXiang[5] = "蛇";
        ShuXiang[6] = "马";
        ShuXiang[7] = "羊";
        ShuXiang[8] = "猴";
        ShuXiang[9] = "鸡";
        ShuXiang[10] = "狗";
        ShuXiang[11] = "猪";
        //农历日期名
        DayName[0] = "*";
        DayName[1] = "初一";
        DayName[2] = "初二";
        DayName[3] = "初三";
        DayName[4] = "初四";
        DayName[5] = "初五";
        DayName[6] = "初六";
        DayName[7] = "初七";
        DayName[8] = "初八";
        DayName[9] = "初九";
        DayName[10] = "初十";
        DayName[11] = "十一";
        DayName[12] = "十二";
        DayName[13] = "十三";
        DayName[14] = "十四";
        DayName[15] = "十五";
        DayName[16] = "十六";
        DayName[17] = "十七";
        DayName[18] = "十八";
        DayName[19] = "十九";
        DayName[20] = "二十";
        DayName[21] = "廿一";
        DayName[22] = "廿二";
        DayName[23] = "廿三";
        DayName[24] = "廿四";
        DayName[25] = "廿五";
        DayName[26] = "廿六";
        DayName[27] = "廿七";
        DayName[28] = "廿八";
        DayName[29] = "廿九";
        DayName[30] = "三十";
        //农历月份名
        MonName[0] = "*";
        MonName[1] = "正";
        MonName[2] = "二";
        MonName[3] = "三";
        MonName[4] = "四";
        MonName[5] = "五";
        MonName[6] = "六";
        MonName[7] = "七";
        MonName[8] = "八";
        MonName[9] = "九";
        MonName[10] = "十";
        MonName[11] = "十一";
        MonName[12] = "腊";
        //公历每月前面的天数
        MonthAdd[0] = 0;
        MonthAdd[1] = 31;
        MonthAdd[2] = 59;
        MonthAdd[3] = 90;
        MonthAdd[4] = 120;
        MonthAdd[5] = 151;
        MonthAdd[6] = 181;
        MonthAdd[7] = 212;
        MonthAdd[8] = 243;
        MonthAdd[9] = 273;
        MonthAdd[10] = 304;
        MonthAdd[11] = 334;
        //农历数据
        NongliData[0] = 2635;
        NongliData[1] = 333387;
        NongliData[2] = 1701;
        NongliData[3] = 1748;
        NongliData[4] = 267701;
        NongliData[5] = 694;
        NongliData[6] = 2391;
        NongliData[7] = 133423;
        NongliData[8] = 1175;
        NongliData[9] = 396438;
        NongliData[10] = 3402;
        NongliData[11] = 3749;
        NongliData[12] = 331177;
        NongliData[13] = 1453;
        NongliData[14] = 694;
        NongliData[15] = 201326;
        NongliData[16] = 2350;
        NongliData[17] = 465197;
        NongliData[18] = 3221;
        NongliData[19] = 3402;
        NongliData[20] = 400202;
        NongliData[21] = 2901;
        NongliData[22] = 1386;
        NongliData[23] = 267611;
        NongliData[24] = 605;
        NongliData[25] = 2349;
        NongliData[26] = 137515;
        NongliData[27] = 2709;
        NongliData[28] = 464533;
        NongliData[29] = 1738;
        NongliData[30] = 2901;
        NongliData[31] = 330421;
        NongliData[32] = 1242;
        NongliData[33] = 2651;
        NongliData[34] = 199255;
        NongliData[35] = 1323;
        NongliData[36] = 529706;
        NongliData[37] = 3733;
        NongliData[38] = 1706;
        NongliData[39] = 398762;
        NongliData[40] = 2741;
        NongliData[41] = 1206;
        NongliData[42] = 267438;
        NongliData[43] = 2647;
        NongliData[44] = 1318;
        NongliData[45] = 204070;
        NongliData[46] = 3477;
        NongliData[47] = 461653;
        NongliData[48] = 1386;
        NongliData[49] = 2413;
        NongliData[50] = 330077;
        NongliData[51] = 1197;
        NongliData[52] = 2637;
        NongliData[53] = 268877;
        NongliData[54] = 3365;
        NongliData[55] = 531109;
        NongliData[56] = 2900;
        NongliData[57] = 2922;
        NongliData[58] = 398042;
        NongliData[59] = 2395;
        NongliData[60] = 1179;
        NongliData[61] = 267415;
        NongliData[62] = 2635;
        NongliData[63] = 661067;
        NongliData[64] = 1701;
        NongliData[65] = 1748;
        NongliData[66] = 398772;
        NongliData[67] = 2742;
        NongliData[68] = 2391;
        NongliData[69] = 330031;
        NongliData[70] = 1175;
        NongliData[71] = 1611;
        NongliData[72] = 200010;
        NongliData[73] = 3749;
        NongliData[74] = 527717;
        NongliData[75] = 1452;
        NongliData[76] = 2742;
        NongliData[77] = 332397;
        NongliData[78] = 2350;
        NongliData[79] = 3222;
        NongliData[80] = 268949;
        NongliData[81] = 3402;
        NongliData[82] = 3493;
        NongliData[83] = 133973;
        NongliData[84] = 1386;
        NongliData[85] = 464219;
        NongliData[86] = 605;
        NongliData[87] = 2349;
        NongliData[88] = 334123;
        NongliData[89] = 2709;
        NongliData[90] = 2890;
        NongliData[91] = 267946;
        NongliData[92] = 2773;
        NongliData[93] = 592565;
        NongliData[94] = 1210;
        NongliData[95] = 2651;
        NongliData[96] = 395863;
        NongliData[97] = 1323;
        NongliData[98] = 2707;
        NongliData[99] = 265877;
    }

}

⌨️ 快捷键说明

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