• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • javascript做的日歷,完全對象化,望高手提出改進意見。(2/3,將3部分拼成一個html文件瀏覽)

    發表于:2007-06-30來源:作者:點擊數: 標簽:
    this.GetTextDate = function(theString){ //convert a string to a date, if the string is not a date, return a empty string var i = 0, tmpChar = , find_tag = ; var start_at = 0, end_at = 0, year_at = 0, month_at = 0, day_at = 0; var tmp_at = 0
      this.GetTextDate = function(theString){ //convert a string to a date, if the string is not a date, return a empty string
        var i = 0, tmpChar = "", find_tag = "";
        var start_at = 0, end_at = 0, year_at = 0, month_at = 0, day_at = 0;
        var tmp_at = 0, one_at = 0, two_at = 0, one_days = 0, two_days = 0;
        var aryDate = new Array();
        var tmpYear = -1, tmpMonth = -1, tmpDay = -1;
        var tmpDate = theString.toLowerCase();
        var defDate = "";
        end_at = tmpDate.length;
        for (i=1;i<end_at;i++){
          if (tmpDate.charAt(i)=="0"){
            tmpChar = tmpDate.charAt(i-1);
            if (tmpChar<"0" || tmpChar>"9"){
              tmpDate = tmpDate.substr(0,i-1) + "-" + tmpDate.substr(i+1);
            }
          }
        }
        for (i=0;i<9;i++){
          tmpDate = tmpDate.replace(this.MonthName[i].toLowerCase().substr(0,3), "-00" + (i+1).toString() + "-");
        }
        for (i=9;i<12;i++){
          tmpDate = tmpDate.replace(this.MonthName[i].toLowerCase().substr(0,3), "-0" + (i+1).toString() + "-");
        }
        tmpDate = tmpDate.replace(/jan/g, "-001-");
        tmpDate = tmpDate.replace(/feb/g, "-002-");
        tmpDate = tmpDate.replace(/mar/g, "-003-");
        tmpDate = tmpDate.replace(/apr/g, "-004-");
        tmpDate = tmpDate.replace(/may/g, "-005-");
        tmpDate = tmpDate.replace(/jun/g, "-006-");
        tmpDate = tmpDate.replace(/jul/g, "-007-");
        tmpDate = tmpDate.replace(/aug/g, "-008-");
        tmpDate = tmpDate.replace(/sep/g, "-009-");
        tmpDate = tmpDate.replace(/oct/g, "-010-");
        tmpDate = tmpDate.replace(/nov/g, "-011-");
        tmpDate = tmpDate.replace(/dec/g, "-012-");
        for (i=0;i<tmpDate.length;i++){
          tmpChar = tmpDate.charAt(i);
          if ((tmpChar<"0" || tmpChar>"9") && (tmpChar != "-")){
            tmpDate = tmpDate.replace(tmpChar,"-")
          }
        }
        while(tmpDate.indexOf("--") != -1){
          tmpDate = tmpDate.replace(/--/g,"-");
        }
        start_at = 0;
        end_at = tmpDate.length-1;
        while (tmpDate.charAt(start_at)=="-"){
          start_at++;
        }
        while (tmpDate.charAt(end_at)=="-"){
          end_at--;
        }
        if (start_at < end_at+1){
          tmpDate = tmpDate.substring(start_at,end_at+1);
        }else{
          tmpDate = "";
        }
        aryDate = tmpDate.split("-");
        if (aryDate.length != 3){
          return(defDate);
        }
        for (i=0;i<3;i++){
          if (parseInt(aryDate[i],10)<1){
            aryDate[i] = "1";
          }
        }
        find_tag="000";
        for (i=2;i>=0;i--){
          if (aryDate[i].length==3){
            if (aryDate[i]>="001" && aryDate[i]<="012"){
              tmpMonth = parseInt(aryDate[i],10)-1;
              switch (i){
                case 0:
                  find_tag = "100";
                  one_at = parseInt(aryDate[1],10);
                  two_at = parseInt(aryDate[2],10);
                  break;
                case 1:
                  find_tag = "010";
                  one_at = parseInt(aryDate[0],10);
                  two_at = parseInt(aryDate[2],10);
                  break;
                case 2:
                  find_tag = "001";
                  one_at = parseInt(aryDate[0],10);
                  two_at = parseInt(aryDate[1],10);
                  break;
              }
            }
          }
        }
        if (find_tag!="000"){
          one_days = this.GetMonthDays(two_at,tmpMonth);
          two_days = this.GetMonthDays(one_at,tmpMonth);
          if ((one_at>one_days)&&(two_at>two_days)){
            return(defDate);
          }
          if ((one_at<=one_days)&&(two_at>two_days)){
            tmpYear = this.GetFormatYear(two_at);
            tmpDay = one_at;
          }
          if ((one_at>one_days)&&(two_at<=two_days)){
            tmpYear = this.GetFormatYear(one_at);
            tmpDay = two_at;
          }
          if ((one_at<=one_days)&&(two_at<=two_days)){
            tmpYear = this.GetFormatYear(one_at);
            tmpDay = two_at;
            tmpDate = this.DateFormat;
            year_at = tmpDate.indexOf("<yyyy>");
            if (year_at == -1){
              year_at = tmpDate.indexOf("<yy>");
            }
            day_at = tmpDate.indexOf("<dd>");
            if (day_at == -1){
              day_at = tmpDate.indexOf("<d>");
            }
            if (year_at >= day_at){
              tmpYear = this.GetFormatYear(two_at);
              tmpDay = one_at;
            }
            }
          return(new Date(tmpYear, tmpMonth, tmpDay));
        }
        find_tag = "000";
        for (i=2;i>=0;i--){
          if (parseInt(aryDate[i],10)>31){
            tmpYear = this.GetFormatYear(parseInt(aryDate[i],10));
            switch (i){
              case 0:
                find_tag = "100";
                one_at = parseInt(aryDate[1],10);
                two_at = parseInt(aryDate[2],10);
                break;
              case 1:
                find_tag = "010";
                one_at = parseInt(aryDate[0],10);
                two_at = parseInt(aryDate[2],10);
                break;
              case 2:
                find_tag = "001";
                one_at = parseInt(aryDate[0],10);
                two_at = parseInt(aryDate[1],10);
                break;
            }
          }
        }
        if (find_tag=="000"){
          tmpDate = this.DateFormat;
          year_at = tmpDate.indexOf("<yyyy>");
          if (year_at == -1){
            year_at = tmpDate.indexOf("<yy>");
          }
          month_at = tmpDate.indexOf("<MMMMMM>");
          if (month_at == -1){
            month_at = tmpDate.indexOf("<MMM>");
          }
          if (month_at == -1){
            month_at = tmpDate.indexOf("<mm>");
          }
          if (month_at == -1){
            month_at = tmpDate.indexOf("<m>");
          }
          day_at = tmpDate.indexOf("<dd>");
          if (day_at == -1){
            day_at = tmpDate.indexOf("<d>");
          }
          if ((year_at>month_at)&&(year_at>day_at)){
            find_tag="001"
          }
          if ((year_at>month_at)&&(year_at<=day_at)){
            find_tag="010";
          }
          if ((year_at<=month_at)&&(year_at>day_at)){
            find_tag="010";
          }
          if ((year_at<=month_at)&&(year_at<=day_at)){
            find_tag="100";
          }
          switch (find_tag){
            case "100":
              tmpYear = parseInt(aryDate[0],10);
              one_at = parseInt(aryDate[1],10);
              two_at = parseInt(aryDate[2],10);
              break;
            case "010":
              one_at = parseInt(aryDate[0],10);
              tmpYear = parseInt(aryDate[1],10);
              two_at = parseInt(aryDate[2],10);
              break;
            case "001":
              one_at = parseInt(aryDate[0],10);
              two_at = parseInt(aryDate[1],10);
              tmpYear = parseInt(aryDate[2],10);
              break;
          }
          tmpYear = this.GetFormatYear(tmpYear);
        }
        if (find_tag!="000"){
          if ((one_at>12)&&(two_at>12)){
            return(defDate);
          }
          if (one_at<=12){
            if (two_at > this.GetMonthDays(tmpYear,one_at-1)){
              return(new Date(tmpYear, one_at-1, this.GetMonthDays(tmpYear,one_at-1)));
            }
            if (two_at>12){
              return(new Date(tmpYear, one_at-1, two_at));
            }
          }
          if (two_at<=12){
            if (one_at > this.GetMonthDays(tmpYear,two_at-1)){
              return(new Date(tmpYear, two_at-1, this.GetMonthDays(tmpYear,two_at-1)));
            }
            if (one_at>12){
              return(new Date(tmpYear, two_at-1, one_at));
            }
          }
          if ((one_at<=12)&&(two_at<=12)){
            tmpMonth = one_at-1;
            tmpDay = two_at;
            tmpDate = this.DateFormat;
            month_at = tmpDate.indexOf("<MMMMMM>");
            if (month_at == -1){
              month_at = tmpDate.indexOf("<MMM>");
            }
            if (month_at == -1){
              month_at = tmpDate.indexOf("<mm>");
            }
            if (month_at == -1){
              month_at = tmpDate.indexOf("<m>");
            }
            day_at = tmpDate.indexOf("<dd>");
            if (day_at == -1){
              day_at = tmpDate.indexOf("<d>");
            }
            if (month_at >= day_at){
              tmpMonth = two_at-1;
              tmpDay = one_at;
            }
             return(new Date(tmpYear, tmpMonth, tmpDay));
          }
        }
      }
      this.CreateYearList = function(MinYear, MaxYear){ //create year list
        var theName = this.Name;
        var theYearObject = document.all.item(theName + "_YearList");
        if (theYearObject == null){
          return;
        }
        var theYear = 0;
        var theYearHTML = "<select id=\"" + theName + "_YearList\" style=\"" + this.YearListStyle + "\" tabIndex=\"-1\" onChange=\"document.jsMonthView.UpdateMonthGrid(this)\" onBlur=\"document.jsMonthView.DeleteMonthGrid()\">";
        for (theYear = MinYear; theYear <= MaxYear; theYear++){
          theYearHTML += "<option value=\"" + theYear.toString() + "\">" + theYear.toString() + "</option>";
        }
        theYearHTML += "</select>";
        theYearObject.outerHTML = theYearHTML;
      }
      this.CreateMonthList = function( ){ //create month list
        var theName = this.Name;
        var theMonthObject = document.all.item(theName + "_MonthList");
        if (theMonthObject == null){
          return;
        }
        var theMonth = 0;
        var theMonthHTML = "<select id=\"" + theName + "_MonthList\" style=\"" + this.MonthListStyle + "\" tabIndex=\"-1\" onChange=\"document.jsMonthView.UpdateMonthGrid(this)\" onBlur=\"document.jsMonthView.DeleteMonthGrid()\">";
        for (theMonth = 0; theMonth < 12; theMonth++){
          theMonthHTML += "<option value=\"" + theMonth.toString() + "\">" + this.MonthName[theMonth] + "</option>";
        }
        theMonthHTML +="</select>";
        theMonthObject.outerHTML = theMonthHTML;
      }
      this.setDayList = function(theYear, theMonth, theDay){ //set the month view show a date
        var theName = this.Name;
        var theDayObject = document.all.item(theName + "_DayList");
        if (theDayObject == null){
          return;
        }
        theDayObject.value = theDay.toString();
        var theFirstDay = new Date(theYear, theMonth, 1);
        var theCurrentDate = new Date();
        var theWeek = theFirstDay.getDay();
        if (theWeek == 0){
          theWeek = 7;
        }
        var theLeftDay = 0;
        if (theMonth == 0){
          theLeftDay = 31;
        }else{
          theLeftDay = this.GetMonthDays(theYear, theMonth - 1);
        }
        var theRightDay = this.GetMonthDays(theYear, theMonth);
        var theCurrentDay = theLeftDay - theWeek + 1;
        var offsetMonth = -1; //the month is previous month
        var theColor = this.InvalidColor;
        var theBgColor = this.UnselectBgColor;
        var theBdColor = theBgColor;
        var WeekId = 0
        var DayId = 0;
        var theStyle = "";
        var theDayHTML = "<table width=\"100%\" height=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
        theDayHTML += "        <tr style=\"" + this.TitleStyle + "\">";
        for (DayId = 0; DayId < 7; DayId++){
          theDayHTML += "        <td width=\"10%\">" + this.WeekName[DayId] + "</td>";
        }
        theDayHTML += "        </tr>";
        theDayHTML += "        <tr>";
        theDayHTML += "            <td colspan=\"7\" style=\"" + this.LineBgStyle + "\">";
        theDayHTML += "                <table style=\"" + this.LineStyle + "\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
        theDayHTML += "                    <tr><td></td></tr>";
        theDayHTML += "                </table>";
        theDayHTML += "            </td>";
        theDayHTML += "        </tr>";
        for (WeekId = 0; WeekId < 6; WeekId++){
          theDayHTML += "    <tr style=\"" + this.DayStyle + "\">";
          for (DayId = 0; DayId < 7; DayId++){
            if ((theCurrentDay > theLeftDay) && (WeekId < 3)){
              offsetMonth++; //the month is current month;
              theCurrentDay = 1;
            }
            if ((theCurrentDay > theRightDay) && (WeekId > 3)){
              offsetMonth++; //the month is next month;
              theCurrentDay = 1;
            }
            switch (offsetMonth){
              case -1:
                theColor = this.InvalidColor;
                break;
            case 1:
                theColor = this.InvalidColor;
                break;
            case 0:
                if ((DayId==0)||(DayId==6)){
                  theColor = this.WeekendColor;
                }else{
                  theColor = this.ValidColor;
                }
                break;
            }
            if ((DayId==0)||(DayId==6)){
              theBgColor = this.WeekendBgColor;
            }else{
              theBgColor = this.UnselectBgColor;
            }
            theBdColor = this.DayBdColor;
            if ((theCurrentDay == theDay) && (offsetMonth == 0)){
              theColor = this.SelectedColor;
              theBgColor = this.SelectedBgColor;
              theBdColor = theBgColor;
            }
            if ((theYear == theCurrentDate.getFullYear()) && (theMonth == theCurrentDate.getMonth()) && (theCurrentDay == theCurrentDate.getDate()) && (offsetMonth == 0)){
              theBdColor = this.TodayBdColor;
            }
            theStyle = "border:" + this.DayBdWidth + "px solid " + theBdColor + "; color:" + theColor + "; background-color:" + theBgColor + ";";
            theDayHTML += "        <td style=\"" + theStyle + "\" onMouseOver=\"" + this.OverDayStyle + "\" onMouseOut=\"" + this.OutDayStyle + "\" onMouseDown=\"document.jsMonthView.CreateMonthGrid(" + theYear.toString() + ", " + (theMonth + offsetMonth).toString() + ", " + theCurrentDay.toString() + ")\">";
            theDayHTML += theCurrentDay.toString();
            theDayHTML += "        </td>";
            theCurrentDay++;
          }
          theDayHTML += "    </tr>";
        }
        theDayHTML += "        <tr style=\"" + this.FooterStyle + "\" onMouseDown=\"document.jsMonthView.CreateMonthGrid(" + theCurrentDate.getFullYear().toString() + ", " + theCurrentDate.getMonth().toString() + ", " + theCurrentDate.getDate().toString() + ");\">";
        theStyle = "border:" + this.DayBdWidth + "px solid " + this.TodayBdColor + ";";
        theDayHTML += "            <td style=\"" + theStyle + "\"><br></td>";
        theDayHTML += "            <td colspan=\"6\"> " + this.TodayTitle + " " + this.SetDateFormat(theCurrentDate.getFullYear(), theCurrentDate.getMonth(), theCurrentDate.getDate()) + "</td>";
        theDayHTML += "        </tr>";
        theDayHTML += "    </table>";
        var theMonthGrid = document.all.item(theName + "_MonthGrid");
        theMonthGrid.innerHTML = theDayHTML;
      }

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>