java 源代码 八字_lunar.java 源代码在线查看 - 农历八字查询 可以查阴历,星期,四柱八字,节气, 资源下载 虫虫电子下载站...

int cyclicalMonth = 0;int cyclicalDay = 0;// 干支年 1900年立春後为庚子年(60进制36)int term2 = Lunar.getSolarTermDay(solarYear, 2); // 立春日期// 依节气调整二月分的年柱, 以立春为界if (solarMonth < 1 || (solarMonth == 1 && solarDay < term2)) {cyclicalYear = (solarYear - 1900 + 36 - 1) % 60;} else {cyclicalYear = (solarYear - 1900 + 36) % 60;}// 干支月 1900年1月小寒以前为 丙子月(60进制12)int firstNode = Lunar.getSolarTermDay(solarYear, solarMonth * 2); // 传回当月「节」为几日开始// 依节气月柱, 以「节」为界if (solarDay < firstNode) {cyclicalMonth = ((solarYear - 1900) * 12 + solarMonth + 12) % 60;} else {cyclicalMonth = ((solarYear - 1900) * 12 + solarMonth + 13) % 60;}// 当月一日与 1900/1/1 相差天数// 1900/1/1与 1970/1/1 相差25567日, 1900/1/1 日柱为甲戌日(60进制10)cyclicalDay = (int) (Lunar.UTC(solarYear, solarMonth, solarDay, 0, 0, 0) / 86400000 + 25567 + 10) % 60;this.cyclicalYear = cyclicalYear;this.cyclicalMonth = cyclicalMonth;this.cyclicalDay = cyclicalDay;}/** * 取农历年生肖 * @return 农历年生肖(例:龙) */public String getAnimalString() {return Lunar.Animals[(this.lunarYear - 4) % 12];}/** * 返回公历日期的节气字符串 * @return 二十四节气字符串,若不是节气日,返回空串(例:冬至) */public String getTermString() {// 二十四节气String termString = "";if (Lunar.getSolarTermDay(solarYear, solarMonth * 2) == solarDay) {termString = Lunar.solarTerm[solarMonth * 2];} else if (Lunar.getSolarTermDay(solarYear, solarMonth * 2 + 1) == solarDay) {termString = Lunar.solarTerm[solarMonth * 2 + 1];}return termString;}/** * 取得干支历字符串 * * @return 干支历字符串(例:甲子年甲子月甲子日) */public String getCyclicalDateString() {return this.getCyclicaYear() + "年" + this.getCyclicaMonth() + "月"+ this.getCyclicaDay() + "日";}/** * 年份天干 * @return 年份天干 */public int getTiananY() {return Lunar.getTianan(this.cyclicalYear);}/** * 月份天干 * @return 月份天干 */public int getTiananM() {return Lunar.getTianan(this.cyclicalMonth);}/** * 日期天干 * @return 日期天干 */public int getTiananD() {return Lunar.getTianan(this.cyclicalDay);}/** * 年份地支 * @return 年分地支 */public int getDeqiY() {return Lunar.getDeqi(this.cyclicalYear);}/** * 月份地支 * @return 月份地支 */public int getDeqiM() {return Lunar.getDeqi(this.cyclicalMonth);}/** * 日期地支 * @return 日期地支 */public int getDeqiD() {return Lunar.getDeqi(this.cyclicalDay);}/** * 取得干支年字符串 * @return 干支年字符串 */public String getCyclicaYear() {return Lunar.getCyclicalString(this.cyclicalYear);}/** * 取得干支月字符串 * @return 干支月字符串 */public String getCyclicaMonth() {return Lunar.getCyclicalString(this.cyclicalMonth);}/** * 取得干支日字符串 * @return 干支日字符串 */public String getCyclicaDay() {return Lunar.getCyclicalString(this.cyclicalDay);}/** * 返回农历日期字符串 * @return 农历日期字符串 */public String getLunarDayString() {return Lunar.getLunarDayString(this.lunarDay);}/** * 返回农历日期字符串 * @return 农历日期字符串 */public String getLunarMonthString() {return (this.isLeap() ? "闰" : "") + Lunar.getLunarMonthString(this.lunarMonth);}/** * 返回农历日期字符串 * @return 农历日期字符串 */public String getLunarYearString() {return Lunar.getLunarYearString(this.lunarYear);}/** * 返回农历表示字符串 * @return 农历字符串(例:甲子年正月初三) */public String getLunarDateString() {return this.getLunarYearString() + "年"+ this.getLunarMonthString() + "月"+ this.getLunarDayString() + "日";}/** * 农历年是否是闰月 * @return 农历年是否是闰月 */public boolean isLeap() {return isLeap;}/** * 农历年是否是闰年 * @return 农历年是否是闰年 */public boolean isLeapYear() {return isLeapYear;}/** * 当前农历月是否是大月 * @return 当前农历月是大月 */public boolean isBigMonth() {return this.getMaxDayInMonth()>29;}/** * 当前农历月有多少天 * @return 当前农历月有多少天 */public int getMaxDayInMonth() {return this.maxDayInMonth;}/** * 农历日期 * @return 农历日期 */public int getLunarDay() {return lunarDay;}/** * 农历月份 * @return 农历月份 */public int getLunarMonth() {return lunarMonth;}/** * 农历年份 * @return 农历年份 */public int getLunarYear() {return lunarYear;}/** * 公历日期 * @return 公历日期 */public int getSolarDay() {return solarDay;}/** * 公历月份 * @return 公历月份 (不是从0算起) */public int getSolarMonth() {return solarMonth+1;}/** * 公历年份 * @return 公历年份 */public int getSolarYear() {return solarYear;}/** * 星期几 * @return 星期几(星期日为:1, 星期六为:7) */public int getDayOfWeek() {return this.solar.get(Calendar.DAY_OF_WEEK);}/** * 黑色星期五 * @return 是否黑色星期五 */public boolean isBlackFriday() {return (this.getSolarDay() == 13 && this.solar.get(Calendar.DAY_OF_WEEK)==6);}/** * 是否是今日 * @return 是否是今日 */public boolean isToday() {Calendar clr = Calendar.getInstance();return clr.get(Calendar.YEAR)==this.solarYear &&clr.get(Calendar.MONTH)==this.solarMonth &&clr.get(Calendar.DAY_OF_MONTH)==this.solarDay;}/** * 取得公历节日名称 * @return 公历节日名称,如果不是节日返回空串 */public String getSFestivalName() {return this.sFestivalName;}/** * 取得农历节日名称 * @return 农历节日名称,如果不是节日返回空串 */public String getLFestivalName() {return this.lFestivalName;}/** * 是否是农历节日 * @return 是否是农历节日 */public boolean isLFestival() {if (!this.isFinded) this.findFestival();return this.isLFestival;}/** * 是否是公历节日 * @return 是否是公历节日 */public boolean isSFestival() {if (!this.isFinded) this.findFestival();return this.isSFestival;}/** * 是否是节日 * @return 是否是节日 */public boolean isFestival() {return this.isSFestival() || this.isLFestival();}/** * 是否是放假日 * @return 是否是放假日 */public boolean isHoliday() {if (!this.isFinded) this.findFestival();return this.isHoliday;}/** * 其它日期说明 * @return 日期说明(如:民国2年) */public String getDescription() {if (!this.isFinded) this.findFestival();return this.description;}/** * 干支字符串 * @param cyclicalNumber 指定干支位置(数字,0为甲子) * @return 干支字符串 */private static String getCyclicalString(int cyclicalNumber) {return Lunar.Tianan[Lunar.getTianan(cyclicalNumber)] + Lunar.Deqi[Lunar.getDeqi(cyclicalNumber)];}/** * 获得地支 * @param cyclicalNumber * @return 地支 (数字) */private static int getDeqi(int cyclicalNumber) { return cyclicalNumber % 12;}/** * 获得天干 * @param cyclicalNumber * @return 天干 (数字) */private static int getTianan(int cyclicalNumber) { return cyclicalNumber % 10;}/** * 返回指定数字的农历年份表示字符串 * @param lunarYear 农历年份(数字,0为甲子) * @return 农历年份字符串 */private static String getLunarYearString(int lunarYear) {return Lunar.getCyclicalString(lunarYear - 1900 + 36);}/** * 返回指定数字的农历月份表示字符串 * @param lunarMonth 农历月份(数字) * @return 农历月份字符串 (例:正) */private static String getLunarMonthString(int lunarMonth) {String lunarMonthString = "";if (lunarMonth == 1) {lunarMonthString = Lunar.lunarString2[4];} else {if (lunarMonth > 9)lunarMonthString += Lunar.lunarString2[1];if (lunarMonth % 10 > 0)lunarMonthString += Lunar.lunarString1[lunarMonth % 10];}return lunarMonthString;}/** * 返回指定数字的农历日表示字符串 * @param lunarDay 农历日(数字) * @return 农历日字符串 (例: 廿一) */private static String getLunarDayString(int lunarDay) {if (lunarDay30) return "";int i1 = lunarDay / 10;int i2 = lunarDay % 10;String c1 = Lunar.lunarString2[i1];String c2 = Lunar.lunarString1[i2];if (lunarDay < 11) c1 = Lunar.lunarString2[0];if (i2 == 0) c2 = Lunar.lunarString2[1];return c1 + c2;}}

LunarCalendar返回农历(阴历)日期的JAR包 根据指定日期计算对应农历日期(这个计算方法是网上找的,最初的作者是谁已经无法考证了,感谢网络资源吧!),本人封装成好用的JAR包后发不出来,供大家免费下载! toString()方法输出阴历日期(例如:癸巳年七月廿) getFullInfo()方法输出包括生肖在内的阴历日期(例如:癸巳年七月廿,生肖:蛇) 构建方法包括以下四种: public LunarCalendar(String year, String month, String date) public LunarCalendar(JComboBox jcYear, JComboBox jcMonth, JComboBox jcDate) public LunarCalendar(int year, int month, int date) public LunarCalendar(Calendar cal)) 使用前两种构建方法时,若文本内容不为数字,getErrorMessage会返回错误信息 方法摘要 java.lang.String getErrorMessage() 返回String类型的错误信息 java.lang.String getFullInfo() 返回String类型的详细阴历信息(例如:癸巳年七月廿,生肖:蛇) java.lang.String getLunarAnimal() 返回String类型的生肖(例如:蛇) java.lang.String getLunarDate() 返回String类型的阴历日期(例如:廿) java.lang.String getLunarMonth() 返回String类型的阴历月份(例如:七) java.lang.String getLunarYear() 返回String类型的阴历年份(天干地支,例如:癸巳) java.lang.String toString() 返回String类型的阴历日期(例如:癸巳年七月廿) JAR包名称:LunarCalendar version 1.0 8/26/2013 作者:Roy, Liu royliu90@live.cn
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值