条件:1.有一点html和css基础(不需要太多,不是很懂也没关系)
2.有一定逻辑语言基础
3.用到3个js语句
思路:1.用js里面的math语句获得当前的日期时间(不懂可以百度);
2.输出顶部三排(较简单)
利用document.getElementById('id').innerHTML=要输出的值
顶部三排就做出来了。
3.输出底部的日历
建一个二维数组,将星期和日期全部存进去
利用循环遍历,把数组输出
分为两部分,当行数为一时,输出第一行
行数不是一时,全部输出
tab+="<td style='background:red'>"+(n[i][j])+"</td>"
因为全部输出完之后再标红会多出一个,要是使用替换的话,抱歉不会。
所以,在一个一个输出时,判断数组中的数是不是当天日期,是的话在生成的时候就直接标红,用条件判断语句
最后输出成功后再简单调节一下css就完成了。
html代码:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>日历</title> 6 </head> 7 <body> 8 <div class="box"> 9 <div id="year_mouth_day"> </div> 10 <div id="week"> </div> 11 <div id="shizhong"> </div> 12 <div id="div1"></div> 13 </div> 14 <link rel="stylesheet" href="日历.css"> 15 <script type="text/javascript" src="日历.js"></script> 16 </body> 17 </html>
css代码:
1 .box { 2 margin: 0; 3 position: fixed; 4 top:0%; 5 left:0%; 6 width: 400px; 7 height: 400px; 8 border: 2px; 9 border-radius: 10px; 10 background-color: #8de695; 11 text-align: center; 12 } 13 #year_mouth_day { 14 font-size: 40px; /* 宽度 */ 15 font-weight: 10px; /* 厚度 */ 16 } 17 #week { 18 font-size: 20px; 19 font-weight: 10px; 20 margin: 10px 10px 10px 10px; 21 } 22 #shijian { 23 24 } 25 table { 26 margin: auto; 27 border-spacing: 18px; 28 border: 2px; 29 border-radius: 10px; 30 background:rgba(0,255,0,0.4); 31 border-collapse: collapse; /* 合并内边框 */ 32 } 33 td { 34 padding: 0px; 35 margin: 0; 36 text-align: center; /* 文本居中 */ 37 width: 40px; 38 height: 40px; 39 border-radius: 10px; 40 border:solid 2px #add9c0; 41 42 }
js代码:
1 function startTime() { 2 var today = new Date() 3 var year = today.getFullYear() //年 4 var mouth = today.getMonth()+1 //月 5 var day = today.getDate() //日 6 var week = today.getDay() //周 7 var h = today.getHours() //时 8 var m = today.getMinutes() //分 9 var s = today.getSeconds() //秒 10 // add a zero in front of numbers<10 为了美观 11 var week_hanzi=['天','一','二','三','四','五','六',] //将数字周改为汉字 12 m = checkTime(m) 13 s = checkTime(s) 14 document.getElementById('year_mouth_day').innerHTML = year + "年" +mouth+"月"+day+"日" 15 document.getElementById('week').innerHTML = "星期 "+week_hanzi[week] 16 document.getElementById('shizhong').innerHTML = h + ":" + m + ":" + s 17 t = setTimeout('startTime()', 500) 18 19 // add a zero in front of numbers<10 为了美观 20 function checkTime(i) { 21 if (i < 10) { 22 i = "0" + i 23 } 24 return i 25 } 26 27 var tab='<table>' 28 var i,j; 29 var n=[[0,1,2,3,4,5,6], 30 [0,0,0,1,2,3,4], 31 [5,6,7,8,9,10,11], 32 [12,13,14,15,16,17,18], 33 [19,20,21,22,23,24,25], 34 [26,27,28,29,30,31,0]]; 35 36 for( i=0;i<6;i++){ 37 tab+='<tr>' 38 for(j=0;j<7;j++){ 39 if(i==0){ //第一排星期 40 if(n[0][j]==week) 41 tab+="<td style='background:red'>"+week_hanzi[j]+"</td>" 42 else 43 tab+="<td>"+week_hanzi[j]+"</td>" 44 } 45 else{ //其他排日期 46 if(n[i][j]==day) 47 tab+="<td style='background:red'>"+(n[i][j])+"</td>" 48 else 49 tab+="<td >"+(n[i][j])+"</td>" 50 //document.write(n[i][j]); 51 } 52 } 53 tab+='</tr>' 54 } 55 tab+='</table>'; 56 div1.innerHTML=tab 57 } 58 59 startTime() 60 61 /*if(week==7) 62 document.getElementById("Sun").id = 'red';*/