2012-07-05 72 views

回答

1

下面是使用java腳本獲取當月特定周的所有星期幾的完整解決方案。

按照步驟:

1)HTML:

<div class="input"> 
    <label> 
    No. of Weeks..?: 
    </label> 
    <input type="text" size="3" id="txtweek" name="txtweek" /> 
    <input type="button" id="btnok" name="btnok" value="Get Week Days" onclick="getWeekDays();" /> 
</div> 
<div id="result"> 
</div> 

2)CSS:

.input label{ 
    font-size:13px; 
    font-weight:bold; 
} 
.input input{ 
    font-size:13px; 
    border:1px solid #333; 
} 
.weekdays{ 
    width:40%; 
    background-color:#11a8a5; 
    box-shadow: 7px 7px 3px #446689; 
    margin-top:5px; 
} 
.weekdays th{ 
    background-color:#885511; 
    border-bottom:1px solid #a4a525; 
    color:#ffad25; 
} 
.weekdays td{ 
    text-align:center; 
} 

3)JAVA SCRIPT:

var startDay = 0; //0=sunday, 1=monday etc. 
var week = 0; 
var result = ""; 

function weekDaysInMonth(week, startDay) { 

    if (startDay == "" && startDay == null && typeof(startDay) == "undefined") { 
     startDay = 0; 
    } 
    if (week != "" && week != null && typeof(week) != "undefined") { 

     var weekDay = new Array(7); 
     weekDay[0] = "Sunday"; 
     weekDay[1] = "Monday"; 
     weekDay[2] = "Tuesday"; 
     weekDay[3] = "Wednesday"; 
     weekDay[4] = "Thursday"; 
     weekDay[5] = "Friday"; 
     weekDay[6] = "Saturday"; 

     var monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; 

     var currDate = new Date(); 
     var currWeekDay = week * 7; 
     var monthLastDay = new Date(currDate.getFullYear(), currDate.getMonth() + 1, 0).getDate(); 

     if (currWeekDay > monthLastDay) { 
      currWeekDay = monthLastDay; 
      currDate = new Date(currDate.getFullYear(), currDate.getMonth() + 1, 0); 

     } else { 
      currDate = new Date((currDate.getMonth() + 1) + '/' + currWeekDay + '/' + currDate.getFullYear()); 
     } 

     var d = currDate.getDay(); //get the current day 
     var weekStart = new Date(currDate.valueOf() - (d <= 0 ? 7 - startDay : d - startDay) * 86400000); //rewind to start day 
     var weekEnd = new Date(weekStart.valueOf() + 7 * 86400000); 

     var wkDay = weekStart.getDate(); //Start week Date 
     var nextDate = weekStart; //Assign Next Date as Current Week Start Date 
     var htmlWeekDays = "", 
      nextDay = ""; 
     while (wkDay != weekEnd.getDate()) { 
      nextDay = nextDate.getDay(); 
      htmlWeekDays += "<tr><td>" + nextDate.getDate() + " " + monthNames[nextDate.getMonth()] + "," + nextDate.getFullYear() + "</td><td>" + weekDay[nextDay] + "</td></tr>"; 
      nextDate = new Date(nextDate.getTime() + 86400000); 
      wkDay = nextDate.getDate(); 

     } 
     if (htmlWeekDays != "") { 
      htmlWeekDays = "<table cellpedding=0 cellspacing=0 class='weekdays'><tr><th>Date</th><th>Day</th></tr>" + htmlWeekDays + "</table>"; 
     } 
     return htmlWeekDays; 
    } else { 
     return false; 
    } 


    return new Date(year, month, 0).getDate(); 
} 

function getWeekDays() { 
    week = document.getElementById("txtweek").value.trim(); 
    if (week != "" && !isNaN(week)) { 
     result = weekDaysInMonth(week, startDay); 
     document.getElementById("result").innerHTML = result; 
    } 
} 

上面的腳本只是不接受的一週,並獲得該周的所有日子w ith動態生成的表格格式。

我也生成垃圾箱演示http://codebins.com/bin/4ldqpbi

相關問題