<!-- saved from url=(0022)http://blog.csdn.net/electroniXtar/ -->
<SCRIPT language=JavaScript>
var lunarInfo=new Array(
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,
0x14b63);
var solarMonth=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var Gan=new Array("甲","乙","丙","丁","戊","己","庚","辛","壬","癸");
var Zhi=new Array("子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥");
var nStr1 = new Array('日','一','二','三','四','五','六','七','八','九','十');
var nStr2 = new Array('初','十','廿','卅',' ');
var nStr3 = new Array('日','一','二','三','四','五','六','七','八','九','十','十一','十二');
function lYearDays(y) {
var i, sum = 348;
for(i=0x8000; i>0x8; i>>=1) sum += (lunarInfo[y-1900] & i)? 1: 0;
return(sum+leapDays(y));
}
function leapDays(y) {
if(leapMonth(y)) return((lunarInfo[y-1900] & 0x10000)? 30: 29);
else return(0);
}
function leapMonth(y) {
return(lunarInfo[y-1900] & 0xf);
}
function monthDays(y,m) {
return( (lunarInfo[y-1900] & (0x10000>>m))? 30: 29 );
}
function Lunar(objDate) {
var i, leap=0, temp=0;
var offset = (Date.UTC(objDate.getFullYear(),objDate.getMonth(),objDate.getDate()) - Date.UTC(1900,0,31))/86400000;
this.dayCyl = offset + 40;
this.monCyl = 14;
for(i=1900; i<2050 && offset>0; i++) {
temp = lYearDays(i);
offset -= temp;
this.monCyl += 12;
}
if(offset<0) {
offset += temp;
i--;
this.monCyl -= 12;
}
this.year = i;
this.yearCyl = i-1864;
leap = leapMonth(i); //闰哪个月
this.isLeap = false;
for(i=1; i<13 && offset>0; i++) {
//闰月
if(leap>0 && i==(leap+1) && this.isLeap==false)
{ --i; this.isLeap = true; temp = leapDays(this.year); }
else
{ temp = monthDays(this.year, i); }
if(this.isLeap==true && i==(leap+1)) this.isLeap = false;
offset -= temp;
if(this.isLeap == false) this.monCyl ++;
}
if(offset==0 && leap>0 && i==leap+1)
if(this.isLeap)
{ this.isLeap = false; }
else
{ this.isLeap = true; --i; --this.monCyl;}
if(offset<0){ offset += temp; --i; --this.monCyl; }
this.month = i;
this.day = offset + 1;
}
function solarDays(y,m) {
if(m==1)
return(((y%4 == 0) && (y%100 != 0) || (y%400 == 0))? 29: 28);
else
return(solarMonth[m]);
}
function cyclical(num) {
return(Gan[num%10]+Zhi[num%12]);
}
function calElement(sYear,sMonth,sDay,week,lYear,lMonth,lDay,isLeap,cYear,cMonth,cDay) {
this.isToday = false;
//公历
this.sYear = sYear;
this.sMonth = sMonth;
this.sDay = sDay;
this.week = week;
//农历
this.lYear = lYear;
this.lMonth = lMonth;
this.lDay = lDay;
this.isLeap = isLeap;
//干支
this.cYear = cYear;
this.cMonth = cMonth;
this.cDay = cDay;
}
function calendar(y,m) {
var sDObj, lDObj, lY, lM, lD=1, lL, lX=0, tmp1, tmp2;
var lDPOS = new Array(3);
var n = 0;
var firstLM = 0;
sDObj = new Date(y,m,1,0,0,0,0); //当月一日日期
this.length = solarDays(y,m); //公历当月天数
this.firstWeek = sDObj.getDay(); //公历当月1日星期几
for(var i=0;i<this.length;i++) {
if(lD>lX) {
sDObj = new Date(y,m,i+1); //当月一日日期
lDObj = new Lunar(sDObj); //农历
lY = lDObj.year; //农历年
lM = lDObj.month; //农历月
lD = lDObj.day; //农历日
lL = lDObj.isLeap; //农历是否闰月
lX = lL? leapDays(lY): monthDays(lY,lM); //农历当月最後一天
if(n==0) firstLM = lM;
lDPOS[n++] = i-lD+1;
}
this[i] = new calElement(y, m+1, i+1, nStr1[(i+this.firstWeek)%7],
lY, lM, lD++, lL,
cyclical(lDObj.yearCyl) ,cyclical(lDObj.monCyl), cyclical(lDObj.dayCyl++) );
}
}
function cDay(d){
var s;
switch (d) {
case 10:
s = '初十'; break;
case 20:
s = '二十'; break;
break;
case 30:
s = '三十'; break;
break;
default :
s = nStr2[Math.floor(d/10)];
s += nStr1[d%10];
}
return(s);
}
function cMon(d){
var s;
switch (d) {
case 1:
s = '正'; break;
case 12:
s = '腊'; break;
default :
s = nStr3[d];
break;
}
return(s);
}
var ctime=new Date();
var nYear = ctime.getYear();
var nMonth = ctime.getMonth();
var d = ctime.getDate() - 1;
var ddd =new calendar(nYear,nMonth);
var bsWeek=ddd[d].week;
var bsDate=ddd[d].sYear+"年"+ddd[d].sMonth+"月";
var bsDate2=ddd[d].sDay+"日";
var bsYear=ddd[d].cYear + "年" + cMon(ddd[d].lMonth) + "月" + cDay(ddd[d].lDay);
function CAL(){
document.write("<table width='120' height='60' cellpadding='1'");
document.write("<tr><td align='center'><b><font color=#008040>"+bsDate+bsDate2+"</font><br><font color=#FF7530><span style='FONT-SIZE: 10pt'>");
document.write("星期" + bsWeek+"</span>"+"<br></b><font color=#9B4E00>");
document.write(bsYear + "</td></tr></table>");
}
CAL();
</script>
分享到:
相关推荐
标题中的“十分漂亮的日历显示软件”指的是一个设计精良且功能丰富的日历应用程序,它不仅具有美观的界面,还能与用户的桌面环境完美融合。这款软件的独特之处在于其能够自动定时更新桌面背景,使得日历始终与桌面...
本教程将详细讲解如何使用jQuery实现一个具备日历显示、日程条数统计、鼠标移入移出效果以及通过AJAX获取后台数据的功能。 首先,我们来理解"日历日程"的概念。日历日程是将日期与特定事件相结合的展示方式,它允许...
"Calendar 日历显示列表"是一个这样的应用,它提供了丰富的功能来满足用户对时间管理的需求。以下是对这个应用及其特点的详细解读: 1. **双历显示**:Calendar 应用支持同时显示公历(阳历)和农历(阴历),这...
1. **带温度的日历显示装置**:这是该装置的核心特性,意味着它具备了显示温度和日期的能力,这种多功能性使得它在日常生活中具有很高的实用性。 2. **时钟日历**:这是基础功能,时钟用于显示当前时间,日历则显示...
**jQuery 双日历显示** 在网页开发中,有时我们需要用户选择两个日期,例如开始日期和结束日期。这种情况下,使用一个单日历选择器可能不够直观,因此开发者常常会利用jQuery来实现双日历显示的功能。这个功能可以...
在VB应用中,`MSCAL.OCX` 是一个专门用于日历显示的ActiveX控件,它使得程序员可以轻松地在程序中添加日期选择功能,提升用户体验。 `MSCAL.OCX` 控件源自Microsoft的Calendar Control,这是一个早期的Windows API...
在这个名为“日历显示的一个课程设计”的项目中,我们可以看到一个综合性的课程设计案例,它主要涉及了C语言编程和日历的可视化显示。这个项目包括了源代码、运行程序、任务书和说明书等关键组成部分,为理解并评估...
在Java编程语言中,开发一个日历显示应用是一项常见的任务,尤其对于初学者来说,它可以帮助理解GUI(图形用户界面)编程和事件处理的基本概念。标题"用java做的日历显示"表明这是一个使用Java实现的日历应用程序,...
本项目“公立日历显示与排列”就是基于C语言开发的一个实用程序,它能够显示公元后任何年份的某一个月的日历,并按照星期顺序进行排列。下面将详细解析这个项目的知识点。 首先,我们要理解日历的计算原理。日历...
总之,MFC中的日历显示涉及到窗口类的自定义、绘图操作、时间日期处理以及可能的第三方库集成。通过这样的实践,不仅可以提升你对MFC的理解,也有助于你掌握Windows桌面应用程序开发的基本技巧。
标签"rtc的日历显示 stm32__rtc日历"进一步强调了RTC日历显示是这个项目的核心部分。开发过程中,调试RTC与LCD之间的通信问题、优化代码以降低功耗以及确保时间显示的准确性都是重要的考虑因素。 总之,STM32利用...
javascript实现日历显示,可以根据用户输入时间显示日历。
对于网页中的日历显示功能,jQuery提供了多种插件,使得开发者能够轻松实现日期选择器、日程管理或者时间轴展示等功能。本文将深入探讨jQuery日历显示插件的全貌,以及如何利用这些插件提升用户体验。 首先,让我们...
在IT行业中,日历显示和时间选择是常见的用户界面元素,尤其在移动应用和Web应用中,它们扮演着至关重要的角色。"最全日历显示与时间选择"的Demo旨在提供一个简洁而实用的解决方案,帮助开发者快速实现天气预报相关...
《桌面日历显示软件:Wallpaper Calendar》 在数字化时代,高效管理时间和日程变得尤为重要。Wallpaper Calendar就是这样一款专为提升工作效率、便利日常生活而设计的桌面日历显示软件。它将传统日历与现代科技相...
试用了daytime朋友的“CalDesktop 桌面日历显示”后,觉得自己也可以做一个,于是就做了这个东西。 1、在桌面墙纸上显示当月日历,万年历可在程序中查看。 2、启动时自动运行一次就可更新月历,程序不驻留内存。若...
本项目“ios-简单的时间日历显示(精简版)”提供了一个基础的日历视图实现,旨在帮助开发者快速理解并实现类似功能。下面我们将详细探讨这个项目的知识点。 1. **日历框架**: iOS中的日期和时间处理主要依赖于`...
"C语言日历显示专业课程设计报告含源代码" 本报告旨在展示C语言日历显示专业课程设计的报告,并提供了源代码。报告包括实验报告、必做题、选做题、流程图和工程代码等部分。 知识点1:C语言基础知识 C语言是一种...
bootstrap calendar 全年日历显示,可做年度行事历等功能,使用起来特别方便,相关使用方法详见官网:http://www.bootstrap-year-calendar.com/#Documentation/Installation
在这个特定的问题"DateTimePickerDemo(日历显示有误)"中,开发者遇到了一个与日历视图显示有关的异常情况。问题的核心在于两个DateTimePicker组件的配置:一个只配置了年、月、日,而另一个则配置到了小时、分钟和...