zoukankan      html  css  js  c++  java
  • 课程表上一周下一周

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>课程表</title>
        <script>
            var currDT;
            var aryDay = new Array("日", "一", "二", "三", "四", "五", "六");
    
            //初始页面 
            function initWeek(date) {
                if (date == undefined) {
                    currDT = new Date();
                } else {
                    currDT = new Date(date);
                }
                showDate();
            }
    
            //上一周 或 下一周 
            function addWeek(ope) {
                var num = 0;
                if (ope == "-") {
                    num = -7;
                }
                else if (ope == "+") {
                    num = 7;
                }
                currDT = addDate(currDT, num);
                showDate();
                return currDT;
            }
    
            function showDate() {
                span1.innerHTML = currDT.toLocaleDateString(); //显示日期 
                var dw = currDT.getDay();
                var tdDT;
                //确定周一是那天 
                if (dw == 0) {
                    tdDT = addDate(currDT, -6);
                }
                else {
                    tdDT = addDate(currDT, (1 - dw));
                }
                //在表格中显示一周的日期 
                var objTB = document.getElementById("trWeek");
                for (var i = 0; i < 7; i++) {
                    if (tdDT.toLocaleDateString() == currDT.toLocaleDateString()) {
                        objTB.cells[i + 1].style.color = "red"; //currDT突出显示 
                    }
                    dw = tdDT.getDay();
                    var month = (tdDT.getMonth() + 1) < 10 ? "0" + (tdDT.getMonth() + 1) : (tdDT.getMonth() + 1);
                    var date = tdDT.getDate() < 10 ? "0" + tdDT.getDate() : tdDT.getDate();
                    objTB.cells[i + 1].innerHTML = "星期" + aryDay[dw] + "<br />[" + tdDT.getFullYear() + "-" + month + "-" + date + "]";
                    tdDT = addDate(tdDT, 1); //下一天 
                }
            }
    
            //增加或减少若干天,由 num 的正负决定,正为加,负为减 
            function addDate(dt, num) {
                var ope = "+";
                if (num < 0) {
                    ope = "-";
                }
    
                var reDT = dt;
                for (var i = 0; i < Math.abs(num) ; i++) {
                    reDT = addOneDay(reDT, ope);
                }
                return reDT;
            }
    
            //增加或减少一天,由ope决定, + 为加,- 为减,否则不动 
            function addOneDay(dt, ope) {
                var num = 0;
                if (ope == "-") {
                    num = -1;
                }
                else if (ope == "+") {
                    num = 1;
                }
    
                var y = dt.getFullYear();
                var m = dt.getMonth();
                var lastDay = getLastDay(y, m);
    
                var d = dt.getDate();
                d += num;
                if (d < 1) {
                    m--;
                    if (m < 0) {
                        y--;
                        m = 11;
                    }
                    d = getLastDay(y, m);
                }
                else if (d > lastDay) {
                    m++;
                    if (m > 11) {
                        y++;
                        m = 0;
                    }
                    d = 1;
                }
    
                var reDT = new Date();
                reDT.setYear(y);
                reDT.setMonth(m);
                reDT.setDate(d);
    
                return reDT;
            }
    
            //是否为闰年 
            function isLeapYear(y) {
                var isLeap = false;
                if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0) {
                    isLeap = true;
                }
                return isLeap;
            }
    
            //每月最后一天 
            function getLastDay(y, m) {
                var lastDay = 28;
                m++;
                if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) {
                    lastDay = 31;
                }
                else if (m == 4 || m == 6 || m == 9 || m == 11) {
                    lastDay = 30;
                }
                else if (isLeapYear(y) == true) {
                    lastDay = 29;
                }
                return lastDay;
            }
            //获取任意周的开始时间
            function getAnyWeekStart(date) {
                var currentDay = date.getDay();
                if (currentDay == 0) { currentDay = 7; }
                var mondayTime = date.getTime() - (currentDay - 1) * 24 * 60 * 60 * 1000;
                var startTime = new Date(mondayTime).Format("yyyy/MM/dd");
                return startTime;
    
            }
            //获取任意周的结束时间
            function getAnyWeekEnd(date) {
                var currentDay = date.getDay();
                if (currentDay == 0) { currentDay = 7; }
                var sundayTime = date.getTime() + (7 - currentDay) * 24 * 60 * 60 * 1000;
                var endTime = new Date(sundayTime).Format("yyyy/MM/dd");
                return endTime;
            }
    
            function dockPostion(date) {
                //currDT = new Date(date);
                //var start = getAnyWeekStart(currDT);
                //var end = getAnyWeekEnd(currDT);
                initWeek(date);
            }
    
            window.onload = function () {
                date.value = new Date().toLocaleDateString();
                initWeek();
            }
        </script>
    </head>
    <body>
        <div>
            <center>
                <button style="cursor:hand;font-weight:bold;" onclick="addWeek('-')" title="上一周">←</button> 
                <span id="span1"></span>
                <button style="cursor:hand;font-weight:bold;" onclick="addWeek('+')" title="下一周">→</button> 
            </center>
        </div>
        <div style="margin-top: 10px;">
            <center>
            <h3>课程表</h3>
            <table id="tb1" border="1" style="font-size: 10pt">
                <thead>
                    <tr id="trWeek">
                        <th>课程/星期</th>
                        <th></th>
                        <th></th>
                        <th></th>
                        <th></th>
                        <th></th>
                        <th></th>
                        <th></th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>第一节</td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                    </tr>
                </tbody>
            </table>
            </center>
            <div style="margin-top:15px;">
                <center>
                    <input id="date" type="text" />
                    <button onclick="dockPostion(date.value)">定位日期</button>
                </center>
            </div>
        </div>
    </body>
    </html>
    

      

  • 相关阅读:
    TypeScript——04——ts中的接口(Interface)
    TypeScript——02——TS基本数据类型介绍和使用
    TypeScript——01——简介以及安装使用
    事件循环 EventLoop(Promise,setTimeOut,async/await执行顺序)
    【vue】vue生命周期---精简易懂-----【XUEBIG】
    【Vue】-- 数据双向绑定的原理 --Object.defineProperty()
    【nodejs】--express的中间件multer实现图片文件上传--【XUEBIG】
    【H5】-- FormData用法介绍以及实现图片/文件上传--【XUEBIG】
    CommonJs规范详解---【XUEBIG】
    从输入 URL 到页面加载完成的过程详解---【XUEBIG】
  • 原文地址:https://www.cnblogs.com/lofty/p/4192156.html
Copyright © 2011-2022 走看看