using System.Data
using System.Configuration
using System.Web
using System.Web.Security
using System.Web.UI
using System.Web.UI.WebControls
using System.Web.UI.WebControls.WebParts
using System.Web.UI.HtmlControls
/// <summary>
/// Tool 的摘要说明
/// </summary>
public class Tool
{
public Tool()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
//天干
private static string[] TianGan = { "甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸" }
//地支
private static string[] DiZhi = { "子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥" }
//十二生肖
private static string[] ShengXiao = { "鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪" }
//农历日期
private static string[] DayName = {"*","初一","初二","初三","初四","初五",
"初六","初七","初八","初九","初十",
"十一","十二","十三","十四","十五",
"十六","十七","十八","十九","二十",
"廿一","廿二","廿三","廿四","廿五",
"廿六","廿七","廿八","廿九","三十"}
//农历月份
private static string[] MonthName = { "*", "正", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "腊" }
//公历月计数天
private static int[] MonthAdd = { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 }
//农历数据
private static int[] LunarData = {2635,333387,1701,1748,267701,694,2391,133423,1175,396438
,3402,3749,331177,1453,694,201326,2350,465197,3221,3402
,400202,2901,1386,267611,605,2349,137515,2709,464533,1738
,2901,330421,1242,2651,199255,1323,529706,3733,1706,398762
,2741,1206,267438,2647,1318,204070,3477,461653,1386,2413
,330077,1197,2637,268877,3365,531109,2900,2922,398042,2395
,1179,267415,2635,661067,1701,1748,398772,2742,2391,330031
,1175,1611,200010,3749,527717,1452,2742,332397,2350,3222
,268949,3402,3493,133973,1386,464219,605,2349,334123,2709
,2890,267946,2773,592565,1210,2651,395863,1323,2707,265877}
/// <summary>
/// 获取对应日期的农历
/// </summary>
/// <param name="dtDay">公历日期</param>
/// <returns></returns>
public static string GetLunarCalendar(DateTime dtDay)
{
string sYear = dtDay.Year.ToString()
string sMonth = dtDay.Month.ToString()
string sDay = dtDay.Day.ToString()
int year
int month
int day
try
{
year = int.Parse(sYear)
month = int.Parse(sMonth)
day = int.Parse(sDay)
}
catch
{
year = DateTime.Now.Year
month = DateTime.Now.Month
day = DateTime.Now.Day
}
int nTheDate
int nIsEnd
int k, m, n, nBit, i
string calendar = string.Empty
//计算到初始时间1921年2月8日的天数:1921-2-8(正月初一)
nTheDate = (year - 1921) * 365 + (year - 1921) / 4 + day + MonthAdd[month - 1] - 38
if ((year % 4 == 0) &&(month >2))
nTheDate += 1
//计算天干,地支,月,日
nIsEnd = 0
m = 0
k = 0
n = 0
while (nIsEnd != 1)
{
if (LunarData[m] <4095)
k = 11
else
k = 12
n = k
while (n >= 0)
{
//获取LunarData[m]的第n个二进制位的值
nBit = LunarData[m]
for (i = 1i <n + 1i++)
nBit = nBit / 2
nBit = nBit % 2
if (nTheDate <= (29 + nBit))
{
nIsEnd = 1
break
}
nTheDate = nTheDate - 29 - nBit
n = n - 1
}
if (nIsEnd == 1)
break
m = m + 1
}
year = 1921 + m
month = k - n + 1
day = nTheDate
return year + "-" + month + "-" + day
// #region 格式化日期显示为三月廿四
// if (k == 12)
// {
// if (month == LunarData[m] / 65536 + 1)
// month = 1 - month
// else if (month >LunarData[m] / 65536 + 1)
// month = month - 1
// }
//
// //生肖
// calendar = ShengXiao[(year-4)%60%12].ToString() +"年 "
// // //天干
// // calendar += TianGan[(year-4)%60%10].ToString()
// // //地支
// // calendar += DiZhi[(year-4)%60%12].ToString() + " "
//
// //农历月
// if(month <1)
// calendar += "闰" + MonthName[-1*month].ToString() + "月"
// else
// calendar += MonthName[month].ToString()+"月"
//
// //农历日
// calendar += DayName[day].ToString()+ "日"
//
// return calendar
//
// #endregion
}
}
是js做的!关键是这个
<script language="JavaScript" type="text/javascript">
<!--
calendar()
//-->
</script>
下面这段代码 就是:请粘贴到HTML中测试 <script language="JavaScript"><!--
var bsYear
var bsDate
var bsWeek
var arrLen=8//数组长度
var sValue=0//当年的秒数
var dayiy=0//当年第几天
var miy=0//月份的下标
var iyear=0//年份标记
var dayim=0//当月第几天
var spd=86400//每天的秒数
var year1999="302929302929302930303029"//354
var year2000="303029293029293029303029"//354
var year2001="30302930293029293029302930"//384
var year2002="303029302930292930293029"//354
var year2003="303029303029302929302930"//355
var year2004="29302930302930293029302930"//384
var year2005="293029302930302930293029"//354
var year2006="30293029303029293030292930" var month1999="正月二月三月四月五月六月七月八月九月十月十一月十二月"
var month2001="正月二月三月四月闰四月五月六月七月八月九月十月十一月十二月"
var month2004="正月二月闰二月三月四月五月六月七月八月九月十月十一月十二月"
var month2006="正月二月三月四月五月六月七月闰七月八月九月十月十一月十二月"
var Dn="初一初二初三初四初五初六初七初八初九初十十一十二十三十四十五十六十七十八十九二十廿一廿二廿三廿四廿五廿六廿七廿八廿九三十" var Ys=new Array(arrLen)
Ys[0]=919094400Ys[1]=949680000Ys[2]=980265600
Ys[3]=1013443200Ys[4]=1044028800Ys[5]=1074700800
Ys[6]=1107878400Ys[7]=1138464000 var Yn=new Array(arrLen)//农历年的名称
Yn[0]="己卯年"Yn[1]="庚辰年"Yn[2]="辛巳年"
Yn[3]="壬午年"Yn[4]="癸未年"Yn[5]="甲申年"
Yn[6]="乙酉年"Yn[7]="丙戌年"
var D=new Date()
var yy=D.getYear()
var mm=D.getMonth()+1
var dd=D.getDate()
var ww=D.getDay()
if (ww==0) ww=" <font color=RED>星期日"
if (ww==1) ww="星期一"
if (ww==2) ww="星期二"
if (ww==3) ww="星期三"
if (ww==4) ww="星期四"
if (ww==5) ww="星期五"
if (ww==6) ww=" <font color=RED>星期六"
ww=ww
var ss=parseInt(D.getTime() / 1000)
if (yy <100) yy="19"+yy for (i=0i <arrLeni++)
if (ss>=Ys[i]){
iyear=i
sValue=ss-Ys[i]//当年的秒数
}
dayiy=parseInt(sValue/spd)+1//当年的天数 var dpm=year1999
if (iyear==1) dpm=year2000
if (iyear==2) dpm=year2001
if (iyear==3) dpm=year2002
if (iyear==4) dpm=year2003
if (iyear==5) dpm=year2004
if (iyear==6) dpm=year2005
if (iyear==7) dpm=year2006
dpm=dpm.split("") var Mn=month1999
if (iyear==2) Mn=month2001
if (iyear==5) Mn=month2004
if (iyear==7) Mn=month2006
Mn=Mn.split("") var Dn="初一初二初三初四初五初六初七初八初九初十十一十二十三十四十五十六十七十八十九二十廿一廿二廿三廿四廿五廿六廿七廿八廿九三十"
Dn=Dn.split("") dayim=dayiy var total=new Array(13)
total[0]=parseInt(dpm[0])
for (i=1i <dpm.length-1i++) total[i]=parseInt(dpm[i])+total[i-1]
for (i=dpm.length-1i>0i--)
if (dayim>total[i-1]){
dayim=dayim-total[i-1]
miy=i
}
bsWeek=ww
bsDate=yy+"年"+mm+"月"
bsDate2=dd
bsYear="农历"+Yn[iyear]
bsYear2=Mn[miy]+Dn[dayim-1]
if (ss>=Ys[7]||ss <Ys[0]) bsYear=Yn[7]
function CAL(){
document.write(" <table border='1' cellspacing='3' width='105' bordercolor='#000000' bgcolor='#FFFFFF' height='110' cellpadding='2'")
document.write(" <tr><td align='center'><b><font color=#008040>"+bsDate+" </font><br><font face='Arial' size='6' color=#FF8040>"+bsDate2+" </font><br><font color=#008040><span style='FONT-SIZE: 10.5pt'>")
document.write(bsWeek+" </span><br>"+" <br></b><font color=#9B4E00>")
document.write(bsYear+" <br>"+bsYear2+" </td></tr></table>")
}
//-->
</script>
<script language="javascript">CAL()</script>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)