简单的日历!
这是我第一次写博客,我写了一个非常非常简单的日历,实现了根据年月切换显示当前月份的日历,都是用前端写的,有些地方没有想象的完善。
点击"<“和”>"能切换月份,月份超过最大值时改变年份,下面是代码
这是html:
<body>
<form id="form1" runat="server">
<div class="div1">
<input type="button" onclick="change()" value="提交"/>
<table class="table ">
<tr>
<th>
<input type="button" class="prevbtn" onclick="dian('1')" value="<"/>
<th>
<select id="nian" onchange="gai()">
<script type="text/javascript" >
for (i = 1980; i <= 2050; i++) document.write('<option value="' + i + '">' + i)
</script>
</select><span class="nian">年</span>
</th>
<th>
<select id="yue" onchange="gai()">
<script type="text/javascript" >
for (i = 1; i <= 12; i++) document.write('<option value="' + i + '">' + i)
</script>
</select><span class="yue">月</span>
</th>
<th>
<input type="button" class="today" onclick="dian('3')" value="返回今日"/>
</th>
<th>
<input type="button" class="nextbtn" onclick="dian('2')" value=">"/>
</th>
</tr>
<tr>
<td colspan="5">
<table class="table">
<thead>
<tr align="center" style="background-color:#CFDFF0;height:24px">
<td width="14%"><font color="red"><b>日</b></font></td>
<td width="14%"><b>一</b></td>
<td width="14%"><b>二</b></td>
<td width="14%"><b>三</b></td>
<td width="14%"><b>四</b></td>
<td width="14%"><b>五</b></td>
<td width="14%"><font color="red"><b>六</b></font></td>
</tr>
</thead>
<tbody id="nei">
<script>
var year = $("#nian").val();
var month = $("#yue").val();
var day_tep = 0;
var days = new Array();
var time = new Date(year, month, 0);//当前月最后一天
var dayInMonth = time.getDate();//一个月有多少天
var firstDay = new Date(year, month - 1, 1);
var weekDay = firstDay.getDay(); //获取当月第一天是周几
//一个月有几个星期,向上取整
var weeks = Math.ceil((dayInMonth + weekDay) / 7);
for (var i = 0; i < weeks; i++) {//i为一个月的第几周
days[i] = new Array();
document.write('<tr>');
for (var j = 0; j < 7; j++) {//j代表星期几
if ((i == 0 & j >= weekDay) || (i > 0 & day_tep < dayInMonth)) {
day_tep++;
days[i][j] = day_tep;
document.write('<td>' + days[i][j] + '</td>');
} else {
days[i][j] = "";
document.write('<td>' + days[i][j] + '</td>');
}
}
document.write('</tr>');
}
</script>
</tbody>
</table>
</td>
</tr>
</table>
</div>
</form>
</body>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
function NianChange() {
var nian = $("#nian").val();
//年份能整除4 且 不能被100整除的 与 年份能被400整除的 为闰年
if ((nian % 4) == "0" && (nian % 100) != "0" || nian % 400 == "0") {
alert(nian + "闰 366天 2月29 天 ");
} else {
$("#nianrun").html("平年");
alert(nian + "平 365天 2月28 天 ");
}
}
function solarDays(y, m) {
if (m == 1)
return (((y % 4 == 0) && (y % 100 != 0) || (y % 400 == 0)) ? 29 : 28);
else
return (solarMonth[m]);
}
function change(){
var theNian = $("#nian").val();
var theYue = $("#yue").val();
//alert(theNian + "年 " + theYue+"月");
NianChange();
}
function gai() {
var year = $("#nian").val();
var month = $("#yue").val();
var day_tep = 0;
var str = "";
var days = new Array();
var time = new Date(year, month, 0);//当前月最后一天
var dayInMonth = time.getDate();//一个月有多少天
var firstDay = new Date(year, month - 1, 1);
var weekDay = firstDay.getDay(); //获取当月第一天是周几
//一个月有几个星期,向上取整
var weeks = Math.ceil((dayInMonth + weekDay) / 7);
for (var i = 0; i < weeks; i++) {//i为一个月有几周
days[i] = new Array();
str += "<tr>";
for (var j = 0; j < 7; j++) {//j代表星期几
if ((i == 0 & j >= weekDay) || (i > 0 & day_tep < dayInMonth)) {
day_tep++;
days[i][j] = day_tep;
str += "<td>" + days[i][j] + "</td>"
} else {
days[i][j] = "";
str += "<td>" + days[i][j] + "</td>"
}
}
str += "</tr>";
}
$("#nei").html(str);
}
function pushBtm(K) {
switch (K) {
case 'YU':
if (CLD.SY.selectedIndex > 0) CLD.SY.selectedIndex--;
break;
case 'YD':
if (CLD.SY.selectedIndex < 200) CLD.SY.selectedIndex++;
break;
case 'MU':
if (CLD.SM.selectedIndex > 0) {
CLD.SM.selectedIndex--;
}
else {
CLD.SM.selectedIndex = 11;
if (CLD.SY.selectedIndex > 0) CLD.SY.selectedIndex--;
}
break;
case 'MD':
if (CLD.SM.selectedIndex < 11) {
CLD.SM.selectedIndex++;
}
else {
CLD.SM.selectedIndex = 0;
if (CLD.SY.selectedIndex < 200) CLD.SY.selectedIndex++;
}
break;
default:
CLD.SY.selectedIndex = tY - 1900;
CLD.SM.selectedIndex = tM;
}
changeCld();
}
function dian(e) {
switch (e) {
case '1':
if (yue.selectedIndex > 0) {
yue.selectedIndex--;
} else {
nian.selectedIndex--;
yue.selectedIndex = 11;
}
gai();
break;
case '2':
if (yue.selectedIndex < 11) {
yue.selectedIndex++;
} else {
nian.selectedIndex++;
yue.selectedIndex = 0;
}
gai();
break;
case '3':
today();
break;
}
}
function today() {
var date = new Date();
var a = date.getFullYear() - 1980;
var b = date.getMonth();
nian.selectedIndex = a;
yue.selectedIndex = b;
gai();
}
</script>
这是样式:
<style>
body ,html{overflow: hidden;font-family:"微软雅黑";margin:0px;padding:0px;text-align:center;}
.div1 {
width:500px;
margin:0 auto;
margin-top:200px;
}
.table{
width:100%;
border:1px solid red;
border-radius:20px;
border-collapse:collapse;
}
.table td{
border :1px solid black;
background-color:#ffffff;
}
.table th{
border :1px solid black;
background-color:#ededed;
font-weight: bold;
}
.div{
padding:3px 3px;
margin:0 auto;
background-color :#E8E8EC;
}
</style>
直接粘贴就可以哦 ( ̄▽ ̄)~*。