📄 wannianli.java
字号:
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 + -