HTML组件(HTML COMPONENTS)之四

  • 来源: 互联网 作者: rocket   2008-03-18/14:19
  • ===编写日历一===

    当calendar.html调用 MYCAL:CALENDAR,当月的日历将会显示在页面中,函数setCal()是主要程序段,它初始化一些变量并调用drawCal()函数。我们也使用了三个别的函数:getMonthName()、 getDays() 和 leapYear()。让我们从最后一个函数开始:

    getDays()函数接收哪月值和哪年值,并且建立一个有12个元素的数组,用来存放每月的天数,哪一年用来决定是不是闰年,在闰年中二月是29天,而不是闰年是28天。该函数返回指定月份的天数。

    以下是getDays():

    function getDays(month, year) {
    // create array to hold number of days in each month
    var ar = new Array(12);
    ar[0] = 31; // January
    ar[1] = (leapYear(year)) ? 29 : 28; // February
    ar[2] = 31; // March
    ar[3] = 30; // April
    ar[4] = 31; // May
    ar[5] = 30; // June
    ar[6] = 31; // July
    ar[7] = 31; // August
    ar[8] = 30; // September
    ar[9] = 31; // October
    ar[10] = 30; // November
    ar[11] = 31; // December

    // return number of days in the specified month (parameter)
    return ar[month];
    }

    如果指定的年数可以被4整除,那么leapYear()函数将返回“true”,否则返回”false“:

    function leapYear(year) {
    if (year % 4 == 0) // basic rule
    return true; // is leap year
    /* else */ // else not needed when statement is "return"
    return false; // is not leap year
    }
    getMonthName()函数返回指定月份的名字:
    function getMonthName(month) {
    // create array to hold name of each month
    var ar = new Array(12);
    ar[0] = "January";
    ar[1] = "February";
    ar[2] = "March";
    ar[3] = "April";
    ar[4] = "May";
    ar[5] = "June";
    ar[6] = "July";
    ar[7] = "August";
    ar[8] = "September";
    ar[9] = "October";
    ar[10] = "November";
    ar[11] = "December";

    // return name of specified month (parameter)
    return ar[month];
    }

    setCal()函数是主模块,我们在脚本的第一行调用它。该函数为当天(now)、和每月的第一天(firstDayInstance)建立一个Date对象。用这些对象,setCal()函数解析出关于一个月的第一天、当日,和最后一天的所有信息。

    function setCal() {
    // standard time attributes
    var now = new Date();
    var year = now.getFullYear();
    var month = now.getMonth();
    var monthName = getMonthName(month);
    var date = now.getDate();
    now = null;

    // create instance of first day of month, and extract the day on which it occurs
    var firstDayInstance = new Date(year, month, 1);
    var firstDay = firstDayInstance.getDay();
    firstDayInstance = null;

    // number of days in current month
    var days = getDays(month, year);

    // call function to draw calendar
    drawCal(firstDay + 1, days, date, monthName, year);
    }


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多