JavaScript 实现动态年历生成

作者:纸飞机

时间:2026-10-24

浏览:336

本文介绍如何使用 JavaScript 动态生成指定年份的年历。通过获取每月天数与起始星期,利用 DOM 操作拼接 HTML 表格结构,实现自动排版。代码包含完整的 HTML 结构与核心逻辑函数,适合前端初学者参考学习。

文章目录

JavaScript 动态年历实现

以下示例展示了利用 JavaScript 生成动态年历的具体实现方式,供读者参考学习。


<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>制作年历</title>
  <style>
   body{text-align:center;}
   .box{margin:0 auto;width:880px;}
   .title{background: #ccc;}
   table{height:200px;width:200px;font-size:12px;text-align:center;float:left;margin:10px;font-family:arial;}
  </style>
  <script src="calendar.js"></script>
  <script>
   var year = parseInt(prompt('输入年份:','2019'));//制作弹窗
   document.write(calendar(year));//调用函数生成指定年份的年历
  </script>
 </head>
 <body>
 </body>
</html> 

核心逻辑封装在 文件中。


function calendar(y){
 //获取指定年份1月1日的星期数值
 var w = new Date(y,0).getDay();
 var html = '<div class="box">';
 
 //拼接每个月份的表格
 for(m=1;m<=12;m++){
  html += '<table>';
  html += '<tr class="title"><th colspan="7">' + y + '年' +m+' 月</th></tr>';
  html += '<tr><td>日</td><td>一</td><td>二</td><td>三</td><td>四</td><td>五</td><td>六</td></tr>'
  
  //获取每个月份共有多少天
  var max = new Date(y,m,0).getDate();
  
  html += '<tr>';//开始<tr>标签
  for (d=1;d<=max;d++){
   if(w && d== 1){//如果该月的第1天不是星期日,则填充空白
    html += '<td colspan ="' + w + '"> </td>';
   }
   html += '<td>' +d+ '</td>';
   if(w == 6 && d != max){//如果星期六不是该月的最后一天,则换行
    html += '</tr><tr>';
   }else if(d==max){//该月的最后一天,闭合</tr>标签
    html += '</tr>';
   }
   w = (w+1>6) ? 0 : w+1;
  }
  html += '</table>';
 }
 html += '</div>';
 return html;
}

运行后呈现的年历视觉效果如下所示。

JavaScript 动态年历实现

上述内容即为本文的全部介绍,希望能为读者的编程实践提供有益帮助,欢迎持续关注本站获取更多技术资源。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章