日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

阳历转农历(转)

發(fā)布時間:2023/12/20 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 阳历转农历(转) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->package?org.common.website.util;

/**??

?*?
@author?wangmj???

?*?????????編寫時間:2005-8-2?<br?/>??

?*?????????所在的project名稱:00newframe?<br?/>??

?*?????????類的名稱為:Lunar.java?<br?/>??

?
*/

import?java.util.Calendar;

import?java.util.Date;

import?org.apache.commons.logging.Log;

import?org.apache.commons.logging.LogFactory;

//?import?com.veriweb.util.OurLog;

public?final?class?Lauar
{
????
????
private?static?Log??????log????????=?LogFactory.getLog(Lauar.class);
????
????
private?static?int??????monCyl,?dayCyl,?yearCyl;
????
????
private?static?int??????year,?month,?day;
????
????
private?static?boolean??isLeap;
????
????
private?static?int[]????lunarInfo??=?{?0x04bd8,?0x04ae0,?0x0a570,?0x054d5,

???????????????????????????????????????
0x0d260,?0x0d950,?0x16554,?0x056a0,
????????????
0x09ad0,?0x055d2,?0x04ae0,

????????????
0x0a5b6,?0x0a4d0,?0x0d250,?0x1d255,?0x0b540,?0x0d6a0,?0x0ada2,

????????????
0x095b0,?0x14977,?0x04970,?0x0a4b0,?0x0b4b5,?0x06a50,?0x06d40,

????????????
0x1ab54,?0x02b60,?0x09570,?0x052f2,?0x04970,?0x06566,?0x0d4a0,

????????????
0x0ea50,?0x06e95,?0x05ad0,?0x02b60,?0x186e3,?0x092e0,?0x1c8d7,

????????????
0x0c950,?0x0d4a0,?0x1d8a6,?0x0b550,?0x056a0,?0x1a5b4,?0x025d0,

????????????
0x092d0,?0x0d2b2,?0x0a950,?0x0b557,?0x06ca0,?0x0b550,?0x15355,

????????????
0x04da0,?0x0a5d0,?0x14573,?0x052d0,?0x0a9a8,?0x0e950,?0x06aa0,

????????????
0x0aea6,?0x0ab50,?0x04b60,?0x0aae4,?0x0a570,?0x05260,?0x0f263,

????????????
0x0d950,?0x05b57,?0x056a0,?0x096d0,?0x04dd5,?0x04ad0,?0x0a4d0,

????????????
0x0d4d4,?0x0d250,?0x0d558,?0x0b540,?0x0b5a0,?0x195a6,?0x095b0,

????????????
0x049b0,?0x0a974,?0x0a4b0,?0x0b27a,?0x06a50,?0x06d40,?0x0af46,

????????????
0x0ab60,?0x09570,?0x04af5,?0x04970,?0x064b0,?0x074a3,?0x0ea50,

????????????
0x06b58,?0x055c0,?0x0ab60,?0x096d5,?0x092e0,?0x0c960,?0x0d954,

????????????
0x0d4a0,?0x0da50,?0x07552,?0x056a0,?0x0abb7,?0x025d0,?0x092d0,

????????????
0x0cab5,?0x0a950,?0x0b4a0,?0x0baa4,?0x0ad50,?0x055d9,?0x04ba0,

????????????
0x0a5b0,?0x15176,?0x052b0,?0x0a930,?0x07954,?0x06aa0,?0x0ad50,

????????????
0x05b52,?0x04b60,?0x0a6e6,?0x0a4e0,?0x0d260,?0x0ea65,?0x0d530,

????????????
0x05aa0,?0x076a3,?0x096d0,?0x04bd7,?0x04ad0,?0x0a4d0,?0x1d0b6,

????????????
0x0d250,?0x0d520,?0x0dd45,?0x0b5a0,?0x056d0,?0x055b2,?0x049b0,

????????????
0x0a577,?0x0a4b0,?0x0aa50,?0x1b255,?0x06d20,?0x0ada0?};
????
????
private?static?int[]????solarMonth?=?{?31,?28,?31,?30,?31,?30,?31,?31,?30,
????????????
31,

????????????
30,?31????????????????????};
????
????
private?static?String[]?Gan????????=?{?"",?"",?"",?"",?"",?"",?"",
????????????
"",

????????????
"",?""??????????????????};
????
????
private?static?String[]?Zhi????????=?{?"",?"",?"",?"",?"",?"",?"",
????????????
"",

????????????
"",?"",?"",?""????????};
????
????
private?static?String[]?Animals????=?{?"",?"",?"",?"",?"",?"",?"",
????????????
"",

????????????
"",?"",?"",?""????????};
????
????
private?static?int[]????sTermInfo??=?{?0,?21208,?42467,?63836,?85337,
????????????
107014,

????????????
128867,?150921,?173149,?195551,?218072,?240693,?263343,?285989,

????????????
308563,?331033,?353350,?375494,?397447,?419210,?440795,?462224,

????????????
483532,?504758????????????};
????
????
private?static?String[]?nStr1??????=?{?"",?"",?"",?"",?"",?"",?"",
????????????
"",

????????????
"",?"",?""?????????????};
????
????
private?static?String[]?nStr2??????=?{?"",?"",?"廿",?"",?" "?};
????
????
private?static?String[]?monthNong??=?{?"",?"",?"",?"",?"",?"",?"",

???????????????????????????????????????
"",?"",?"",?"",?"十一",?"十二"?};
????
????
private?static?String[]?yearName???=?{?"",?"",?"",?"",?"",?"",?"",

???????????????????????????????????????
"",?"",?""?};
????
????
public?Lauar()
????{

????}
????
????
//?======================================?傳回農(nóng)歷?y年的總天數(shù)
????
????
private?static?int?lYearDays(int?y)
????{
????????
????????
int?i;
????????
????????
int?sum?=?348;?//?29*12
????????
????????
for?(i?=?0x8000;?i?>?0x8;?i?>>=?1)
????????{
????????????
????????????
//?OurLog.debug("i="+i);
????????????
????????????sum?
+=?(lunarInfo[y?-?1900]?&?i)?==?0???0?:?1;?//?大月+1天
????????????
????????}
????????
????????
return?(sum?+?leapDays(y));?//?+閏月的天數(shù)
????????
????}
????
????
//?======================================?傳回農(nóng)歷?y年閏月的天數(shù)
????
????
private?static?int?leapDays(int?y)
????{
????????
????????
if?(leapMonth(y)?!=?0)
????????????
????????????
return?((lunarInfo[y?-?1900]?&?0x10000)?==?0???29?:?30);
????????
????????
else
????????????
????????????
return?(0);
????????
????}
????
????
//?======================================?傳回農(nóng)歷?y年閏哪個月?1-12?,?沒閏傳回?0
????
????
private?static?int?leapMonth(int?y)
????{
????????
????????
return?(lunarInfo[y?-?1900]?&?0xf);
????????
????}
????
????
//?======================================?傳回農(nóng)歷?y年m月的總天數(shù)
????
????
private?static?int?monthDays(int?y,?int?m)
????{
????????
????????
return?((lunarInfo[y?-?1900]?&?(0x10000?>>?m))?==?0???29?:?30);
????????
????}
????
????
//?======================================?算出農(nóng)歷,?傳入日期物件,?傳回農(nóng)歷日期物件
????
????
//?該物件屬性有?.year?.month?.day?.isLeap?.yearCyl?.dayCyl?.monCyl
????
????
private?static?void?Lunar1(Date?objDate)
????{
????????
????????
int?i,?leap?=?0,?temp?=?0;
????????
????????
//?int?monCyl,dayCyl,yearCyl;
????????
????????
//?int?year,month,day;
????????
????????
//?boolean?isLeap;
????????
????????Calendar?cl?
=?Calendar.getInstance();
????????
????????cl.set(
1900,?0,?31);?//?1900-01-31是農(nóng)歷1900年正月初一
????????
????????Date?baseDate?
=?cl.getTime();
????????
????????
//?1900-01-31是農(nóng)歷1900年正月初一
????????
????????
int?offset?=?(int)?((objDate.getTime()?-?baseDate.getTime())?/?86400000);?//?天數(shù)(86400000=24*60*60*1000)
????????
????????
//?System.out.println(offset);
????????
????????dayCyl?
=?offset?+?40;?//?1899-12-21是農(nóng)歷1899年臘月甲子日
????????
????????monCyl?
=?14;?//?1898-10-01是農(nóng)歷甲子月
????????
????????
//?得到年數(shù)
????????
????????
for?(i?=?1900;?i?<?2050?&&?offset?>?0;?i++)
????????{
????????????
????????????temp?
=?lYearDays(i);?//?農(nóng)歷每年天數(shù)
????????????
????????????offset?
-=?temp;
????????????
????????????monCyl?
+=?12;
????????????
????????}
????????
????????
if?(offset?<?0)
????????{
????????????
????????????offset?
+=?temp;
????????????
????????????i
--;
????????????
????????????monCyl?
-=?12;
????????????
????????}
????????
????????year?
=?i;?//?農(nóng)歷年份
????????
????????yearCyl?
=?i?-?1864;?//?1864年是甲子年
????????
????????leap?
=?leapMonth(i);?//?閏哪個月
????????
????????isLeap?
=?false;
????????
????????
for?(i?=?1;?i?<?13?&&?offset?>?0;?i++)
????????{
????????????
????????????
//?閏月
????????????
????????????
if?(leap?>?0?&&?i?==?(leap?+?1)?&&?isLeap?==?false)
????????????{
????????????????
????????????????
--i;
????????????????
????????????????isLeap?
=?true;
????????????????
????????????????temp?
=?leapDays(year);
????????????????
????????????}
????????????
else
????????????{
????????????????
????????????????temp?
=?monthDays(year,?i);
????????????????
????????????}
????????????
????????????
//?解除閏月
????????????
????????????
if?(isLeap?==?true?&&?i?==?(leap?+?1))
????????????????
????????????????isLeap?
=?false;
????????????
????????????offset?
-=?temp;
????????????
????????????
if?(isLeap?==?false)
????????????????
????????????????monCyl
++;
????????????
????????}
????????
????????
if?(offset?==?0?&&?leap?>?0?&&?i?==?leap?+?1)
????????????
????????????
if?(isLeap)
????????????{
????????????????
????????????????isLeap?
=?false;
????????????????
????????????}
????????????
else
????????????{
????????????????
????????????????isLeap?
=?true;
????????????????
????????????????
--i;
????????????????
????????????????
--monCyl;
????????????????
????????????}
????????
????????
if?(offset?<?0)
????????{
????????????
????????????offset?
+=?temp;
????????????
????????????
--i;
????????????
????????????
--monCyl;
????????????
????????}
????????
????????month?
=?i;?//?農(nóng)歷月份
????????
????????day?
=?offset?+?1;?//?農(nóng)歷天份
????????
????????
//?System.out.println(day);
????????
????}
????
????
private?static?int?getYear()
????{
????????
????????
return?(year);
????????
????}
????
????
private?static?int?getMonth()
????{
????????
????????
return?(month);
????????
????}
????
????
private?static?int?getDay()
????{
????????
????????
return?(day);
????????
????}
????
????
private?static?int?getMonCyl()
????{
????????
????????
return?(monCyl);
????????
????}
????
????
private?static?int?getYearCyl()
????{
????????
????????
return?(yearCyl);
????????
????}
????
????
private?static?int?getDayCyl()
????{
????????
????????
return?(dayCyl);
????????
????}
????
????
private?static?boolean?getIsLeap()
????{
????????
????????
return?(isLeap);
????????
????}
????
????
//?==============================?傳入?offset?傳回干支,?0=甲子
????
????
private?static?String?cyclical(int?num)
????{
????????
????????
return?(Gan[num?%?10]?+?Zhi[num?%?12]);
????????
????}
????
????
//?======================?中文日期
????
????
private?static?String?cDay(int?d)
????{
????????
????????String?s;
????????
????????
switch?(d)
????????{
????????????
????????????
case?10:

????????????????s?
=?"

總結(jié)

以上是生活随笔為你收集整理的阳历转农历(转)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。