`
opensuse
  • 浏览: 186919 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于JS Object的理解,Calendar 注释版

阅读更多

翻看Js关于Object的理解,找到了这么两个网站,帮助颇深

 

赛迪网     博客园

 

于是手动试了试赛迪网的例子,以便加深理解。

 

后面有一个日期的例子,Calendar.js 但是写了前半部分后,因为懒而且全是document.write输出

 

就拷贝了过来,可是结果运行不了,出错。

 

搜之,无果。后细细观察,MD原来是全角半角的问题。

 

也不知道为什么这么多人没有敲它的程序的。

 

现将其程序呈现到此,并且加了注释。以待记之。

 

如果要转载,请写明出处:opensuse

 

	<script type="text/javascript">
		Calendar = function(month,year)
		{
			this.days = new Array("周日","周一","周二","周三","周四","周五","周六");
			this.months = new Array("一月","二月","三月","四月","五月","六月","七月","八月",
                       "九月","十月","十一月","十二月");
			this.totalDays = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
			//这里要将月份减1,因为JS Date的月份是从0-11
			this.month = month-1;
			this.year = year;
			//这里是要判断闰年滴,如果润年,则二月份的最后一天是29号
			if (this.year % 4 == 0 || (this.year % 100 == 0 && this.year % 4 != 0))
			{
				this.totalDays[1] = 29;
			}
			this.rowCount = 0;
		
			this.display = Display;
			this.display();
		
		}
		Display = function()
		{
			//获得给定年月的日期 具体参数含义参照
                       //http://www.fzs8.net/Java/JavaScript/2007-06-21/6874.html
			obj = new Date(this.year, this.month, 1);
			//得到给定月份的第一天是星期几返回值是 0(周日) 到 6(周六) 之间的一个整数。 
                       //W3School上写错了
			this.firstDayOfMonth = obj.getDay();
			//这两句没有用到。但是其作用是得到给定月份最后一天是星期几
			obj.setDate(31);
			this.lastDayOfMonth = obj.getDay();

			document.write("<table border=0 cellpadding=2 cellspacing=5>");
			document.write("<tr><td colspan=7 align=center><font face='Arial' size=-1><b>" +
                                       this.months[this.month] + " " + this.year +	"</b></font></td></tr>");
			document.write("<tr>");
			//输出“周日,周一,。。。周六”
			for(i=0;i<this.days.length;i++)
			{
				document.write("<td><font face=Arial size=-2>"+this.days[i] + 
                                "</font></td>") ;
			}
			document.write("</tr>");
			
			//循环,看第一天是星期几来决定输出几列空值,如星期三,则周日,周一,
                       //周二都是空的,这里一定是<=号
			//rowCount即是输出了多少列
			document.write("<tr>");
			for (x=1; x<=this.firstDayOfMonth; x++)
			{
				this.rowCount++;
				document.write("<td><font face=Arial size=-2> </font></td>");
			}
			
			//每个月都是从一号开始的
			this.dayCount=1;
			while (this.dayCount <= this.totalDays[this.month])
			{
				//七天了当然要换行
				if (this.rowCount % 7 == 0)
				{
					document.write("</tr>\n<tr>");
				}
				//输出日期啊,这里dayCount要++因为用的是WHILE方法,还有这个rowCount也要++
				document.write("<td align=center><font face=Arial size=-1>" + this.dayCount
				+ "</font></td>");
				this.dayCount++;
				this.rowCount++;
			}
			document.write("</tr></table>");
		}
		//调用输出实例
		bj1 = new Calendar(11, 2008);
		
	</script>
 

 

  了以自娱。

分享到:
评论

相关推荐

    一个使用非常简单的js日历

    综上所述,这个"一个使用非常简单的js日历"项目提供了一种简便的JavaScript实现日历功能的方法,通过理解上述知识点,开发者可以快速地将日历集成到自己的项目中,并根据需要进行定制和扩展。在实际应用中,不断学习...

    js 日历

    在提供的"calendar.js"文件中,很可能包含了实现上述功能的JavaScript代码。通过阅读和理解这个文件,你可以了解到具体的实现细节,如函数设计、变量作用域、事件处理函数等。如果文件包含注释,那么会更容易理解...

    js实现的日历控件(经典好用)

    JavaScript是一种广泛应用于网页和网络应用开发的脚本语言,它在客户端运行,为用户提供动态交互体验..."加代码.txt"可能是日历控件的额外文档,包含了代码注释或使用说明,可以帮助我们更好地理解和使用这个日历控件。

    js日历控件+实用的日历控件

    在JavaScript的世界里,日历控件是一种常见的交互元素,它为用户提供了一个直观的方式来选择日期,常见于各种在线表单和事件管理系统中。本教程将基于提供的"js日历控件+实用的日历控件"主题,深入探讨如何创建并...

    支持Firefox和IE浏览器的纯js日历控件(类似AJAX自带的日历控件)

    首先,我们来深入理解JavaScript日历控件的实现原理。在JavaScript中,创建这样的控件主要涉及DOM操作、事件处理和CSS样式。DOM(Document Object Model)允许JavaScript动态地修改HTML和XML文档结构,使得我们可以...

    app-canlender.zip

    2. **DOM操作**:为了在页面上显示日历,我们需要用到JavaScript来操作DOM(Document Object Model)。这包括创建新的HTML元素,如表格(table)、行(tr)、单元格(td)等,以及将这些元素插入到页面的特定位置。 ...

    ASP.Net日历舔加日志的控间

    protected void Calendar1_DayRender(object sender, DayRenderEventArgs e) { if (!e.Day.IsOtherMonth) { if (e.Day.Date.Day == 2) { e.Cell.BackColor = System.Drawing.Color.LightSkyBlue; e.Cell....

    传智播客Java SE基础毕向东老师全程笔记

    ### 传智播客Java SE基础毕向东老师全程笔记知识点概览 ...以上章节覆盖了Java SE基础知识的主要方面,从编程基础到高级主题,每一章都涵盖了关键知识点和技术细节,为学习者提供了全面深入的理解。

    java源码包---java 源码 大量 实例

     关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥...

    教学实施大纲(javaWEB方向)

    - **使用注释对代码进行解释说明**:注释有助于提高代码可读性,分为单行注释(//)、多行注释(/* */)和文档注释(/** */)。 - **了解Java中常用的数据类型**:Java支持多种数据类型,包括基本类型(如int、...

    java源码包2

     关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥...

    java源码包3

     关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥...

    java源码包4

     关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个...

    php开发中最常用的英语单词.docx

    75. **Global Object**: 在JavaScript中,全局对象包含所有全局变量和函数。 76. **Global**: 作用域内的变量在整个程序中都可访问。 77. **Grant**: 授予用户或程序特定的权限。 78. **Granularity**: 指系统或...

Global site tag (gtag.js) - Google Analytics