showMonth

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <table>
        <thead>
            <tr>
                <th>星期一</th>
                <th>星期二</th>
                <th>星期三</th>
                <th>星期四</th>
                <th>星期五</th>
                <th>星期六</th>
                <th>星期七</th>
            </tr>
        </thead>
        <tbody>
        </tbody>
    </table>
    <script>
        function showMonth(year, month) {
            var firstDay = new Date(year, month - 1, 1)
            var lastDay = new Date(year, month, 0)
            var lastDayOfLastMonth = new Date(year, month - 1, 0).getDate()
            var weekOfFirstDay = firstDay.getDay()
            var weekOfLastDay = lastDay.getDay()
            if (weekOfFirstDay === 0) {
                weekOfFirstDay = 7
            }
            if (weekOfLastDay === 0) {
                weekOfLastDay = 7
            }

            var allDay = []
            var _weekOfFirstDay = weekOfFirstDay
            for (var i = firstDay.getDate(), l = lastDay.getDate() + 1; i < l; i++) {
                var oneDay = {}
                oneDay.day = i
                oneDay.week = _weekOfFirstDay
                allDay.push(oneDay)
                if (++_weekOfFirstDay > 7) {
                    _weekOfFirstDay = 1
                }
            }

            var dayOfLastMonth = lastDayOfLastMonth
            for (var l = weekOfFirstDay; --l;) {
                var oneDay = {}
                oneDay.day = dayOfLastMonth
                oneDay.week = l
                allDay.unshift(oneDay)
                dayOfLastMonth--
            }

            var dayOfNextMonth = 1
            for (var i = weekOfLastDay + 1, l = 8; i < l; i++) {
                var oneDay = {}
                oneDay.day = dayOfNextMonth++
                oneDay.week = i
                allDay.push(oneDay)
            }

            var html = ‘‘
            for (var i = 0, l = allDay.length; i < l; i++) {
                var oneDay = allDay[i]
                if (oneDay.week == 1) {
                    html += ‘<tr>‘
                    html += ‘<td>‘ + oneDay.day + ‘</td>‘
                } else if (oneDay.week == 7) {
                    html += ‘<td>‘ + oneDay.day + ‘</td>‘
                    html += ‘</tr>‘
                } else {
                    html += ‘<td>‘ + oneDay.day + ‘</td>‘
                }
            }
            document.querySelector(‘tbody‘).innerHTML = html
        }

        showMonth(2015, 6)
    </script>
</body>
</html>
function showMonth(shadowRoot, year, month) {
    var today = new Date(),
        firstDay,
        lastDay,
        lastDayOfLastMonth,
        firstValInTable,
        weekOfFirstDay,
        rowCount,
        tempHTML = ‘‘,
        originalDate

    originalDate = today

    if(typeof year === ‘undefined‘) {
        year = today.getFullYear()
    }
    if(typeof month === ‘undefined‘) {
        month = today.getMonth() + 1
    }

    firstDay = new Date(year, month-1, 1)
    lastDay = new Date(year, month, 0)
    lastDayOfLastMonth = new Date(year, month-1, 0).getDate()

    year = firstDay.getFullYear()
    month = firstDay.getMonth() + 1

    weekOfFirstDay = firstDay.getDay()

    if(weekOfFirstDay === 0) {
        weekOfFirstDay = 7
    }

    // 有多少天减掉1 加上第一天是周几 周三就周一周二周三三天加
    rowCount = Math.ceil(((lastDay - firstDay)/1000/3600/24 +weekOfFirstDay)/7)

    // 表格第1个的值
    // 如果是 5 0,-1,-2,-3 -5+2
    firstValInTable = -weekOfFirstDay + 2

    for(var i = 0; i < rowCount; i++) {

        tempHTML += ‘<tr>‘

        for(var j = 0; j < 7; j++) {

            var day = firstValInTable + 7 * i + j,
                showDay = day,
                weekendClass,
                monthClass,
                todayClass

            if(month === originalDate.getMonth() + 1 && day === originalDate.getDate()) {
                todayClass = ‘current‘
            } else {
                todayClass = ‘‘
            }

            if(j === 7-1){
                weekendClass = ‘sunday‘
            } else if (j === 6-1) {
                weekendClass = ‘saturday‘
            } else {
                weekendClass = ‘‘
            }

            if(day <= 0) {
                showDay = day + lastDayOfLastMonth
                monthClass = ‘prevmonth‘
            } else if (day > lastDay.getDate()) {
                showDay = day - lastDay.getDate()
                monthClass = ‘nextmonth‘
            } else {
                monthClass = ‘‘
            }

            tempHTML += ‘<td tabindex="0" class="‘+todayClass+‘ ‘+weekendClass+‘ ‘+monthClass+‘" data-value="‘+day+‘">‘+showDay+‘</td>‘

        }

        tempHTML += ‘</tr>‘

    }

    shadowRoot.querySelector(‘.year‘).innerText = year
    shadowRoot.querySelector(‘.month‘).innerText = month
    shadowRoot.querySelector(‘tbody‘).innerHTML = tempHTML

}
时间: 2024-11-16 09:38:18

showMonth的相关文章

第六项—详细设计

类详细设计         各个类的简要描述(在整个软件中的地位及实现功能的简要描述,其继承层次关系及所实现的接口等):详细设计每个类的成员变量.构造方法与方法:并根据详细设计给出每个类的实现代码. 1.主函数CalendarWindow类 (1)简要描述: 该类是整个程序的主框架,是javax.swing包中Jframe的一个子类.并实现了ActionListener.MouseListener和FocusListener接口. (2)类详细设计: 该类的成员变量.构造方法及方法设计如下: 1

个人作业实验报告

一.题目简介 设计GUI界面的日历记事本.系统将日历.记事本功能结合在一起,用户可以方便地在任何日期记录下有关内容或查看某个日期的记录内容. 1. 系统界面的左侧是日历.该日历可以按年份前后翻动,鼠标单击“上年”按钮时,当前的日历的年份减一:当鼠标左键单击“下年”按钮,当前日历年份加一. 2. 该日历也可以在某年内按月前后翻动,鼠标单击“上月”按钮时,当前的日历的月份减一:当鼠标左键单击“下月”按钮,当前日历月份加一. 3. 使用鼠标左键单击选定的日期,如已有记录内容,系统将弹出对话框提示该日已

&lt;&lt;Python基础教程&gt;&gt;学习笔记 | 第02章 | 列表和数组

第02章: 列表和数组 ------ 在Python中最基本的数据结构是序列,每个元素分配一个序号,即元素的序号,也即索引.注意,需要从0开始,第一位0,第二位为1,依次类推. Python包括: 字符串,列表,元祖,字典 这四种常用数据结构,或者说四种序列,其中元祖为不可变序列. 列表和元祖的主要区别 列表可变,而元祖不可变             >>>list1 = ['Tom',40] 所以元祖: 主要用于存储不变的数据   >>> >>> t

Android使用GridView实现日历功能(详细代码)

代码有点多,发个图先: 如果懒得往下看的,可以直接下载源码吧(0分的),最近一直有人要,由于时间太久了,懒得找出来整理,今天又看到有人要,正好没事就整理了一下 http://download.csdn.net/detail/onlyonecoder/6574379 布局文件: [html] view plaincopy <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:androi

打印Windows系统日历格式

*   打印Windows系统日历格式  *   *     2016年4月16日  星期六  今年的107天  *  *     日    一    二    三    四    五    六  *               1  2  *     3  4  5  6  7  8  9  *     10 11 12 13 14 15 16  *     17 18 19 20 21 22 23  *     24 25 26 27 28 29 30  *  *   Date类  Cale

js常用代码大全

Javascript常用代码大全 //打开模式对话框 <body><script language=javascript> function doSelectUser(txtId){ strFeatures="dialogWidth=500px;dialogHeight=360px;center=yes;middle=yes ;help=no;status=no;scroll=no"; var url,strReturn; url="selUser.a

源代码

日历记事本的源程序代码 主类 CalendarPad: CalendarPad.Java import java.util.Calendar; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; import java.util.Hashtable; public class CalendarPad extends JFrame implements MouseListener {

原生js实现仿window10系统日历效果

舞动的灵魂版js日历,完全采用js实现,故而实现了与语言无关,jsp.asp.net php asp均可使用.无论你是开发软件,还是网站,均是不可或缺的实用代码. 该日历主要实现了获取当前时间时分秒,年月日星期,动态生成选择年的select,月的select,然后根据你所选中的年月,显示该年月对应的这一个月的日期.点击上一个月,下一个月按钮,在下拉列表中显示对应的年月 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head

日期控件-V1

<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <link rel="stylesheet" href="../css/rest.css"/> <script src="../js/jquery1.7.2.j