html+css+js代码实现日历

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			
			.main {
				width: 800px;
				margin: 0 auto;
            background-color: #F4F7FE;
			}

			.top {
				width: 800px;
				margin: 0 auto;
			}

			#nian {
				width: 100px;
				height: 30px;
				display: block;
			}

			#yue {
				width: 100px;
				height: 30px;
				display: block;
			}

			.float {

				display: block;
				width: 50px;
				float: left;
			}

			.center {

				margin: 0 auto;
				width: 800px;
				
			}

			#tab tr {
				height: 75px;
text-align: center;
background-color: pink;
			}

			#tab tr td,
			th {
				width: 150px;
			}
		</style>
	</head>
	<body>
		<div class="main">
			<div class="top">
				<select id="nian" class="float" onchange="huan()">

				</select>
				<span class="float">&nbsp&nbsp年</span>
				<select id="yue" class="float" onchange="huan()">

				</select>
				<span >&nbsp&nbsp月</span>
				<br /><br />
			</div>


		</div>
		<div class="center">
			<table id="tab" border="" cellspacing="" cellpadding="">
				<tr>
					<th>周日</th>
					<th>周一</th>
					<th>周二</th>
					<th>周三</th>
					<th>周四</th>
					<th>周五</th>
					<th>周六</th>
				</tr>
			</table>
		</div>
		<script type="text/javascript">
			
			var tab = document.getElementById("tab");
			window.onload = function() {
				var nian = document.getElementById("nian");
				var yue = document.getElementById("yue");
				for (var i = 2035; i >= 1990; i--) {
					var sel = document.createElement("option");
					sel.value = i;
					sel.innerText = i;
					nian.appendChild(sel);
				}
				for (var i = 1; i <= 12; i++) {
					var sel = document.createElement("option");
					sel.value = i;
					sel.innerText = i;
					yue.appendChild(sel);
				}
				huan();
			}

			 function huan() {
				var week = 0;//周几
				var day = 1;//从第一天开始
				var days = 30;//这个月一共有几天
				
					try{
						//添加一个add1的类,方便删除
						var dataa=document.getElementsByClassName("add1");
						for(var i=0;i<dataa.length;){
							dataa[0].remove();
						}
					}catch(e){
						//TODO handle the exception
						
					}
			
				var nian = document.getElementById("nian").value;
				var yue = document.getElementById("yue").value;
				var date = new Date(nian + "-" + yue + "-1");
				//计算这个月有多少天
				var data = new Date(nian,yue,0);
				 days=data.getDate();
				 // alert(days)

				var newtr = document.createElement("tr");
				newtr.classList.add("add1");
				for (var i = 0; i < date.getDay(); i++) {
					if (week == 7) {
						week = 0;
					}
					var newtd = document.createElement("td");
					
					newtr.appendChild(newtd);
					week++;

				}
				if (week <= 6) {
					for (; week <= 6; week++, day++) {
						var newtd = document.createElement("td");
						newtd.innerText = day;
						newtd.value = day;
						newtr.appendChild(newtd);


					}
				}
				tab.appendChild(newtr);
				week = 0;
				newtr = document.createElement("tr");
					newtr.classList.add("add1");
				for (; day <= days; day++, week++) {
					if (week == 7) {
						week = 0;
						tab.appendChild(newtr);
						newtr = document.createElement("tr");
							newtr.classList.add("add1");
					}
					var newtd = document.createElement("td");
					newtd.innerText = day;
					newtd.value = day;
					newtr.appendChild(newtd);
				}
				tab.appendChild(newtr);
			}
		</script>
	</body>
</html>

至于样式可以自由发挥。

 

猜你喜欢

转载自blog.csdn.net/m0_63172128/article/details/123800998