使用 JavaScript 动态生成全年日历

季宁
季宁
发布时间:2026-10-16| 6人浏览过
原创

本文将详细解析如何使用纯JavaScript编写一个简易的年历生成器。通过核心算法获取指定年份各月的天数及起始日星期,并自动排版输出为HTML表格结构。

结果或目标

我们的目标是编写一段JavaScript脚本,接收用户输入的年份参数(如2019),并在浏览器中实时渲染出该年份全部12个月的日历表格。日历需包含正确的月份名称、星期表头以及按周排列的日期数字。

准备条件

运行环境:任何现代支持ECMAScript标准的Web浏览器。
开发文件:需要两个核心文件:index.html用于承载结构与样式,calendar.js用于存放核心业务逻辑。

真实操作顺序

第1步:设置 HTML 结构与基础样式

首先在 <head> 中引入CSS定义外观,并通过 <script> 标签挂载外部JS脚本。同时添加一个弹窗交互来捕获年份输入。

<!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'));
   // 将生成的HTML插入页面
   document.write(calendar(year));
  </script>
 </head>
 <body></body>
</html>

第2步:编写 calendar.js 获取时间数据

在 calendar.js 中创建主函数。利用 `new Date(y, m, d)` 构造函数计算关键节点:

  • 确定星期偏移量:`new Date(y, 0).getDay()` 获取当年1月1日是星期几(周日为0)。
  • 计算当月天数:`new Date(y, m, 0).getDate()` 通过获取下个月第0天,巧妙算出当前月最大天数。

初始化 HTML 容器开始符:

function calendar(y){
 var w = new Date(y,0).getDay(); // 初始星期偏移
 var html = '<div class="box">';
 // ...循环生成每个月的内容...

第3步:循环遍历生成月份表格

使用 for 循环从1月到12月迭代,内部嵌套循环填充日期单元格:

// 月份循环
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></tr>' // 星期表头
  
  var max = new Date(y,m,0).getDate(); // 获当月总天数
  
  // 填充具体日期
  for (d=1;d<=max;d++){
   if(w && d== 1) { 
    // 如果非首行,且不是周一(0),则补空格
    html += '<td colspan ="' + w + '"> </td>';
   }
   html += '<td>' +d+ '</td>';
   
   // 判断是否换行:周六(d!=最后一天时)需换下一行
// 或者如果是月底,直接闭合 if(w == 6 && d != max){ html += '</tr><tr>'; }else if(d==max){ html += '</tr>'; } // 更新下一个日期对应的星期索引 w = (w+1>6) ? 0 : w+1; } html += '</table>'; // 闭合月份表格 } html += '</div>'; return html; }

完成判断

双击打开HTML文件,在弹出的提示框中输入有效年份并确认。页面上应显示包含12个表格的全景日历,格式与预期一致。

简要总结

以上就是JavaScript实现年历效果的详细内容,更多关于JavaScript时间处理与DOM操作的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。