關於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>
 

 

  了以自娛。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章