البرامج النصية مع المهرجانات والتقويمات القمرية:
نسخة الكود كما يلي:
<html>
<head>
<meta http-equiv = "content-type" content = "text/html ؛ charset = gb2312">
<title> التقويم مع تقويم القمر </title>
<script language = "javaScript">
<!-
var lunarinfo = صفيف جديد (
0x04bd8،0x04ae0،0x0a570،0x054d5،0x0d260،0x0d950،0x16554،0x056a0،0x09ad0،0x055d2 ،
0x04ae0،0x0a5b6،0x0a4d0،0x0d250،0x1d255،0x0b540،0x0d6a0،0x0ada2،0x095b0،0x14977 ،
0x04970،0x0a4b0،0x0b4b5 ،
0x06566 ، 0x0d4a0 ، 0x0ea50 ، 0x06e95 ، 0x05ad0 ، 0x02b60 ، 0x186e3 ، 0x092e0 ، 0x1c8d7 ، 0x0c950 ،
0x0d4a0،0x1d8a6،0x0b550،0x056a0،0x1a5b4 ،
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 ، 0x0e65 ، 0x0d530 ،
0x05aa0،0x076a3،0x096d0،0x04bd7،0x04ad0،0x0a4d0،0x1d0b6،0x0d250،0x0d520،0x0d45 ،
0x0b5a0،0x056d0،0x055b2،0x049b0،0x0a577،0x0a4b0،0x0aa50،0x1b255،0x06d20،0x0ada0)
var solarmonth = صفيف جديد (31،28،31،30،31،30،31،31،31،30،31) ؛
var eleusts = new Array ("Rat" ، "Ox" ، "Tiger" ، "Rabbit" ، "Dragon" ، "Snake" ، "Horse" ، "Sheep" ، "Monkey" ، "Chicken" ، "Dog" ، "Pig") ؛
var solarterm = صفيف جديد ("Little Cold" ، "Great Cold" ، "بداية الربيع" ، "ماء المطر" ، "Jingzhe" ، "Equinox Spring" ، "Qingming" ، "Green Rain" ، "Heat of Summer" ، "Little Man" ، "ealh" ، "أبيض" ، "أبيض" ، "أبيض" ، "أبيض" "أبيض" DEW "،" Frost Descend "،" Low Snow "،" High Snow "،" Winter Solstice ") ؛
var sterminfo = جديد صفيف (0،21208،42467،63836،85337،107014،128867،150921،173149،195551،218072،240693،26 3343،285989،308563،33103333350،375494،397447،419210،440795،462224،483532،504758) ؛
var nstr1 = new array ('Day' ، 'One' ، 'اثنين' ، 'Three' ، 'Four' ، 'Five' ، 'Six' ، 'Seven' ، 'Eight' ، 'Nine' ، 'Twelve') ؛
var nstr2 = صفيف جديد ('First' ، 'Ten' ، 'Twenty' ، 'Thirty') ؛
// مهرجان التقويم الغريغوري
var sftv = صفيف جديد (
"0101 يوم رأس السنة" ،
"0214 عيد الحب" ،
"0308 يوم المرأة" ،
"0312 Arbor Day" ،
"0315 يوم حقوق المستهلك" ،
"0401 يوم الأحمق في أبريل" ،
"0501 يوم العمال" ،
"0504 يوم الشباب" ،
"0512 يوم الممرضات" ،
"0601 يوم للأطفال" ،
"0701 يوم تأسيس الحزب" ،
"0801 يوم الجيش" ،
"0910 يوم المعلم" ،
"0928 ولادة كونفوشيوس" ،
"1001 اليوم الوطني" ،
"1006 يوم كبار السن" ،
"1024 يوم الأمم المتحدة" ،
"1224 عيد الميلاد" ،
"1225 عيد الميلاد")
// مهرجان القمر
var lftv = صفيف جديد (
"0101 مهرجان الربيع" ،
"0115 مهرجان الفانوس" ،
"0505 Dragon Boat Festival" ،
"0707 عيد الحب الصيني" ،
"0715 مهرجان Zhongyuan" ،
"0815 مهرجان منتصف الخريف" ،
"0909 مهرجان مزدوج التاسع" ،
"1208 مهرجان لابا" ،
"1224 سنة جديدة صغيرة")
// العودة إلى إجمالي عدد الأيام في عام Y من التقويم القمري
وظيفة lyeardays (y) {
var i ، sum = 348 ؛
لـ (i = 0x8000 ؛ i> 0x8 ؛ i >> = 1) sum+= (lunarinfo [y-1900] & i)؟ 1: 0 ؛
العودة (Sum+Leapdays (y)) ؛
}
// العودة إلى عدد الأيام في شهر القفزة من السنة القمرية Y
وظيفة Leapdays (y) {
إذا كانت (leapmonth (y)) عودة ((Lunarinfo [Y-1900] & 0x10000)؟ 30: 29) ؛
عودة أخرى (0) ؛
}
// احكم على أن الشهر في تقويم القمر في السنة Y هو شهر قفزة ، وليس شهرًا قفزة للعودة إلى 0
وظيفة leapmonth (y) {
العودة (Lunarinfo [Y-1900] & 0xf) ؛
}
// العودة إلى إجمالي عدد الأيام في السنة Y وشهر التقويم القمري
وظيفة الشهر (y ، m) {
العودة ((Lunarinfo [Y-1900] و (0x10000 >> م))؟ 30:29) ؛
}
// احسب تاريخ القمر في اليوم الأول من الشهر الحالي وتاريخ القمر في اليوم الأول من الشهر الحالي من التقويم القمري.
وظيفة dianaday (objdate) {
var i ، Leap = 0 ، temp = 0 ؛
var على أساس = تاريخ جديد (1900،0،31) ؛
VAR Offset = (OBJDATE - repart)/86400000 ؛
this.daycyl = offset+40 ؛
this.moncyl = 14 ؛
لـ (i = 1900 ؛ i <2050 && offset> 0 ؛ i ++) {
temp = lyeardays (i)
الإزاحة -= درجة الحرارة ؛
this.moncyl += 12 ؛
}
إذا (إزاحة <0) {
الإزاحة += درجة الحرارة ؛
أنا--؛
this.moncyl -= 12 ؛
}
this.year = i ؛
this.yearcyl = i-1864 ؛
LEAP = LEAPMONTH (i) ؛ // أي شهر يقفز
this.isleap = false ؛
لـ (i = 1 ؛ i <13 && offset> 0 ؛ i ++) {
if (Leap> 0 && i == (Leap+1) && this.isleap == false) {// Leap Month
--أنا؛ this.isleap = صحيح ؛ temp = leapdays (this.year) ؛}
آخر{
temp = monthdays (this.year ، i) ؛}
if (this.isleap == true && i == (Leap+1)) this.isleap = false ؛ // صدر شهر القفزة
الإزاحة -= درجة الحرارة ؛
if (this.isleap == false) this.moncyl ++ ؛
}
if (Offset == 0 && leap> 0 && i == LEAP+1)
if (this.isleap) {this.isleap = false ؛}
آخر {this.isleap = true ؛-i ؛-this.moncyl ؛}
if (إزاحة <0) {Offset+= temp ؛-i ؛-this.moncyl ؛}
this.month = i ؛
this.day = offset+1 ؛
}
// العودة إلى عدد الأيام في السنة Y + يناير من التقويم الغريغوري
Solardays (y ، m) {
إذا (M == 1)
العودة (((y ٪ 4 == 0) && (y ٪ 100! = 0) || (y ٪ 400 == 0))؟ 29:28) ؛
آخر
العودة (solarmonth [m]) ؛
}
// سجل تواريخ التقويم الغريغوري واليوم التقويم القمري
وظيفة calelement (syear ، smonth ، sday ، week ، lyear ، lmonth ، lday ، isLeap) {
this.istoday = false ؛
// Gregorian التقويم
this.syear = syear ؛
this.smonth = smonth ؛
this.sday = sday ؛
this.week = الأسبوع ؛
// التقويم القمري
this.lyear = lyear ؛
this.lmonth = lmonth ؛
this.lday = lday ؛
this.isleap = isLeap ؛
// السجلات الاحتفالية
this.lunarfestival = '' ؛ // مهرجان القمر
this.solarfestival = '' ؛ // مهرجانات غريغوريا
this.solarterms = '' ؛ // الطاقة الشمسية
}
// العودة إلى المدة الشمسية nth لعام معين إلى عدد الأيام (بدءًا من 0 Xiaohan)
وظيفة sterm (y ، n) {
var Offdate = تاريخ جديد ((31556925974.7*(Y-1900)+Sterminfo [n]*60000)+Date.UTC (1900،0،6،2،5)) ؛
العودة (OffDate.getUtcDate ())
}
// احفظ المعلومات ذات الصلة حول Y Year M+ January
var fat = mat = 9 ؛
var eve = 0 ؛
تقويم الوظيفة (y ، m) {
الدهون = حصيرة = 0 ؛
var sdobj ، ldobj ، ly ، lm ، ld = 1 ، ll ، lx = 0 ، tmp1 ، tmp2 ؛
var ldpos = صفيف جديد (3) ؛
var n = 0 ؛
var firstlm = 0 ؛
sdobj = تاريخ جديد (y ، m ، 1) ؛ // تاريخ اليوم الأول من الشهر
this.length = solardays (y ، m) ؛ // عدد الأيام في شهر التقويم الغريغوري
this.firstweek = sdobj.getday () ؛ //في أي يوم من أيام الأسبوع في أول شهر التقويم الغريغوري
if ((m+1) == 5) {fat = sdobj.getday ()}
if ((m+1) == 6) {mat = sdobj.getday ()}
لـ (var i = 0 ؛ i <this.length ؛ i ++) {
if (ld> lx) {
sdobj = تاريخ جديد (y ، m ، i+1) ؛ // تاريخ اليوم الأول من الشهر
ldobj = New Dianaday (sdobj) ؛ // التقويم القمري
ly = ldobj.year ؛ // سنة القمر
lm = ldobj.month ؛ // شهر القمر
ld = ldobj.day ؛ // يوم القمر
ll = ldobj.isleap ؛ // هو شهر القفزة التقويم القمري
lx = ll؟ Leapdays (LY): أشهر (LY ، LM) ؛ // آخر يوم من الشهر القمري
if (lm == 12) {eve = lx}
إذا (n == 0) firstlm = lm ؛
ldpos [n ++] = i-ld+1 ؛
}
هذا [i] = calelement (y ، m+1 ، i+1 ، nstr1 [(i+this.firstweek) ٪ 7] ، ly ، lm ، ld ++ ، ll) ؛
if ((i+this.firstweek) ٪ 7 == 0) {
هذا [i] .Color = 'Red' ؛ // صنداي لون
}
}
// شمسية المصطلح الشمسي
TMP1 = sterm (y ، m*2) -1 ؛
TMP2 = sterm (y ، m*2+1) -1 ؛
هذا [TMP1] .solarterms = solarterm [m*2] ؛
هذا [TMP2] .solarterms = solarterm [m*2+1] ؛
if ((this.firstweek+12) ٪ 7 == 5) // Black Friday
هذا [12] .solarfestival += 'Black Friday' ؛
if (y == ty && m == tm) هذا [td-1] .istoday = true ؛ //اليوم
}
// إظهار تاريخ التقويم القمري باللغة الصينية
وظيفة cday (d) {
var s ؛
التبديل (د) {
الحالة 10:
s = 'اليوم العاشر من الشهر القمري الأول' ؛ استراحة؛
الحالة 20:
s = 'عشرين' ؛ استراحة؛
استراحة؛
الحالة 30:
S = 'Thirty' ؛ استراحة؛
استراحة؛
تقصير:
s = nstr2 [math.floor (d/10)] ؛
S += NSTR1 [D ٪ 10] ؛
}
عودة (ق) ؛
}
var cld ؛
دالة drawCld (sy ، sm) {
var tf = true ؛
var p1 = p2 = "" ؛
var i ، sd ، s ، الحجم ؛
CLD = تقويم جديد (SY ، SM) ؛
gz.innerhtml = '【'+الحيوانات [(sy-4) ٪ 12]+']' ؛ // زودياك
لـ (i = 0 ؛ i <42 ؛ i ++) {
sobj = eval ('sd'+ i) ؛
lobj = eval ('ld'+ i) ؛
sobj.classname = '' ؛
sd = i - cld.firstweek ؛
if (sd> -1 && sd <cld.length) {// في التاريخ
sobj.innerhtml = sd+1 ؛
if (cld [sd] .istoday) {sobj.style.color = '#9900ff' ؛} // لون اليوم
آخر {sobj.style.color = '' ؛}
إذا (cld [sd] .lday == 1) {// أظهر الشهر القمري
lobj.innerhtml = '<b>' + (cld [sd] .isleap؟ 'Leap': '') + cld [sd] .lmonth + 'month' + (month -days (cld [sd] .ly ، cld [sd] .lmonth) == 29؟
}
آخر {lobj.innerhtml = cday (cld [sd] .lday) ؛} // عرض يوم القمر
var slfw = ssfw = null ؛
s = cld [sd] .solarfestival ؛
لـ (var ipp = 0 ؛ ipp <lftv.length ؛ IPP ++) {// Lunar Lunar Festival
if (parseint (lftv [ipp] .substr (0،2)) == (cld [sd] .lmonth)) {
if (parseint (lftv [ipp] .substr (2،4)) == (cld [sd] .lday)) {
lobj.innerhtml = lftv [ipp] .substr (5) ؛
SLFW = LFTV [IPP] .Substr (5) ؛
}
}
إذا (12 == (cld [sd] .lmonth)) {// judge ما إذا كانت ليلة رأس السنة أم لا
if (eve == (cld [sd] .lday)) {lobj.innerhtml = "New Year's Eve" ؛ SLFW = "New Year's Eve" ؛}
}
}
لـ (var ipp = 0 ؛ ipp <sftv.length ؛ ipp ++) {// مهرجان التقويم الغريغوري
if (parseint (sftv [ipp] .substr (0،2)) == (sm+1)) {
if (parseint (sftv [ipp] .substr (2،4)) == (SD+1)) {
lobj.innerhtml = sftv [ipp] .substr (5) ؛
ssfw = sftv [ipp] .substr (5) ؛
}
}
}
if ((sm+1) == 5) {// عيد الأم
if (fat == 0) {
if ((SD+1) == 7) {ssfw = "Day's Day" ؛ lobj.innerhtml = "Mother's Day"}
}
آخر إذا (الدهون <9) {
if ((sd+1) == ((7-fat) +8)) {ssfw = "mother's day" ؛
}
}
if ((sm+1) == 6) {// عيد الأب
if (mat == 0) {
if ((sd+1) == 14) {ssfw = "عيد الأب" ؛ lobj.innerhtml = "عيد الأب"}
}
آخر إذا (حصيرة <9) {
if ((sd+1) == ((7-mat) +15)) {ssfw = "الأب يوم" ؛ lobj.innerhtml = "عيد الأب"}
}
}
إذا (S.Length <= 0) {// اضبط لون المصطلح الشمسي
s = cld [sd] .solarterms ؛
if (s.length> 0) s = s.fontcolor ('limegreen') ؛
}
if (s.length> 0) {lobj.innerhtml = s ؛ slfw = s ؛} // solar
if ((slfw! = null) && (ssfw! = null)) {
lobj.innerhtml = slfw+"/"+ssfw ؛
}
}
آخر {// non-date
sobj.innerhtml = '' ؛
lobj.innerhtml = '' ؛
}
}
}
// عند اختيار العام والشهر في القائمة المنسدلة ، اتصل بالوظيفة المخصصة DrawCld () لعرض المعلومات ذات الصلة حول التقويم الغريغوري والتقويم القمري
وظيفة changeCld () {
var y ، m ؛
y = cld.Sy.SelectedIndex+1900 ؛
M = cld.sm.selectedIndex ؛
DrawCld (y ، m) ؛
}
// استخدم متغيرات مخصصة لتوفير السنة والشهر واليوم في النظام الحالي
var اليوم = تاريخ جديد () ؛
var ty = today.getlyear () ؛
var tm = today.getMonth () ؛
var td = today.getDate () ؛
// عند فتح الصفحة ، عرض العام والشهر الحاليين في القائمة المنسدلة ، واتصل بالوظيفة المخصصة DrawCld () لعرض المعلومات ذات الصلة حول التقويم الغريغوري والتقويم القمري.
وظيفة initial () {
cld.Sy.SelectedIndex = ty-1900 ؛
cld.sm.selectedIndex = tm ؛
DrawCld (Ty ، TM) ؛
}
//->
</script>
<body Onload = inial ()>
<centre>
<اسم النموذج = cld>
<griding>
<tr>
<td align = middle>
<table border = 1 cellpadding = "0" cellpacing = "0" borderColordark = "#ffffff" borderColor = "#ffffff" borderColorlight = "#eeeeee">
<tr bgcolor = "#006600">
<td colspan = 7> <font color =#ffffff style = "font-size: 9pt"> Gregorian التقويم
<حدد name = sy onchange = changeCld () style = "font-size: 9pt">
<script language = "javaScript">
لـ (i = 1900 ؛ i <2050 ؛ i ++) document.write ('<potion>'+i) ؛
</script>
</select> السنة <select name = sm onchange = changeCld () style = "font-size: 9pt">
<script language = "javaScript">
لـ (i = 1 ؛ i <13 ؛ i ++) document.write ('<potion>'+i) ؛
</script>
</select> month </font> <font color =#ffffff face = 宋 id = gz style = "font-size: 12pt"> </font> <br> </td>
</r>
<tr align = middle bgcolor =#e0e0e0>
<td width = 54 style = "font-size: 9pt ؛ padding: 5pt ؛"> day </td>
<td width = 54 style = "font-size: 9pt"> واحد </td>
<td width = 54 style = "font-size: 9pt"> اثنان </td>
<td width = 54 style = "font-size: 9pt"> ثلاثة </td>
<td width = 54 style = "font-size: 9pt"> أربعة </td>
<td width = 54 style = "font-size: 9pt"> خمسة </td>
<td width = 54 style = "font-size: 9pt"> Six </td> </tr>
<script language = "javaScript">
var gnum
لـ (i = 0 ؛ i <6 ؛ i ++) {
document.write ('<tr align = center>') ؛
لـ (j = 0 ؛ j <7 ؛ j ++) {
gnum = i*7+j ؛
document.write ('<td id = "gd' + gnum + '"> <font id = "sd' + gnum + '" size = 2 face = "arial black"') ؛
if (j == 0) document.write ('color = red') ؛
if (j == 6) document.write ('color =#000080') ؛
document.write ('title = ""> </font> <br> <font id = "ld' + gnum + '" size = 2 style = "font-size: 9pt"> </font> </td>') ؛
}
document.write ('</tr>') ؛
}
</script>
</table>
</td>
</r>
</table>
</form>
</center>
</body>
</html>
نادر جدًا ، مع تأثيرات التقويم مع المهرجانات والمصطلحات الشمسية والتقويمات القمرية. أتمنى أن يعجب أصدقاؤك بذلك.