首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js制作简易日历

以下是使用 JavaScript 制作简易日历的示例代码和相关解释:

代码语言:txt
复制
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>简易日历</title>
  <style>
    table {
      width: 100%;
      border-collapse: collapse;
    }

    th,
    td {
      border: 1px solid #ccc;
      padding: 8px;
      text-align: center;
    }

    th {
      background-color: #f2f2f2;
    }
  </style>
</head>

<body>
  <h1>简易日历</h1>
  <div id="calendar"></div>

  <script>
    function generateCalendar(year, month) {
      const calendarDiv = document.getElementById('calendar');
      calendarDiv.innerHTML = '';

      const date = new Date(year, month);
      const firstDay = new Date(date.getFullYear(), date.getMonth(), 1);
      const lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);
      const daysInMonth = lastDay.getDate();
      const startDay = firstDay.getDay() || 7;

      let calendarHTML = '<table>';
      calendarHTML += '<tr><th>日</th><th>一</th><th>二</th><th>三</th><th>四</th><th>五</th><th>六</th></tr>';
      calendarHTML += '<tr>';

      for (let i = 1; i < startDay; i++) {
        calendarHTML += '<td></td>';
      }

      for (let i = 1; i <= daysInMonth; i++) {
        calendarHTML += `<td>${i}</td>`;
        if ((i + startDay - 1) % 7 === 0) {
          calendarHTML += '</tr><tr>';
        }
      }

      calendarHTML += '</tr>';
      calendarHTML += '</table>';

      calendarDiv.innerHTML = calendarHTML;
    }

    // 示例:生成当前月份的日历
    const today = new Date();
    generateCalendar(today.getFullYear(), today.getMonth());
  </script>
</body>

</html>

基础概念

  • Date 对象:用于处理日期和时间。
  • innerHTML :用于获取或设置元素的 HTML 内容。

优势

  • 简单易懂,适合初学者学习日历的基本原理和 JavaScript 操作 DOM 的方法。
  • 可以根据需求进行定制和扩展,例如添加节假日标注、事件提醒等功能。

应用场景

  • 小型项目中的日期展示。
  • 学习和教学示例。

这个简易日历通过获取指定的年份和月份,计算出该月的第一天是星期几以及这个月的总天数,然后动态生成表格形式的日历展示在页面上。如果要生成其他月份的日历,可以调用 generateCalendar 函数并传入相应的年份和月份参数。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Google日历简易版 2.0

大家用不用Google日历? 它可以用来规划日程、记录事项、甚至写日记,既安全(数据保存在Google的机房)又方便(各种平台都能访问),甚至还很贴心地提供手机同步和免费短信提醒。...于是,2008年,我写了一个"Google日历简易版"。 今年四月份,Google启用新版本API,我的那个程序彻底无法使用了。考虑到还有需求,利用这几天,我索性就重写了一遍。...现在就让我,正式推出"Google日历简易版 2.0"!   ...此外,Google还规定,日历API每天请求上限是10000次。你没有看错,真的只有四个零。我数了好几遍,都不敢相信自己的眼睛。...======================================== 不管怎么说,这个"Google日历简易版",我还是会维护下去的(毕竟眼前找不到更好的在线日历)。

1.5K80
  • PPT辅助Power BI制作日历图表

    日历可以作为切片器使用,也可以展示时间趋势。借助PPT可以在Power BI矩阵视觉对象生成无数种样式的日历造型。...如下是2024年3月的日历,外框为缺角矩形: 换一个造型: 再换一个造型,并加上农历: 实现过程为DAX和SVG矢量图结合,但是却不需要任何SVG知识。如何操作?...), "星期",RIGHT(FORMAT([Date],"AAA"),1), "星期值",WEEKDAY([Date],2), "第几周",WEEKNUM([Date],2) ) 拖拽一个基础的矩阵日历...度量值内容为上方SVG文本外加下图红框的前缀: 将以上度量值标记为图像URL放入矩阵的值: 得到以下结果: 还记得在PPT写的数字是12,找到代码中的12,把它替换为日期表中的日期: 替换后: 日历新造型已初步完工...: 显示大小、间距有问题可以在格式区域调整: 如果要对日历突出今天,把代码中的fill='none' 改为条件格式: 修改后: 以上是单行文本,双行甚至多行文本道理相同,你在PPT制作底稿时预留对应位置即可

    6610

    3.26 PowerBI报告可视化-日历看板或日历热图:用矩阵制作

    使用日历展示数据是很常见的可视化方式,比如日历热图、课程表、排班表等。在PowerBI中,使用微软原生的矩阵视觉对象就可以轻松做出日历看板。...举例 有如下排班表,需要在日历看板中展示每天的值班人员:操作步骤 STEP 1 准备日期表,包含日历看板所需的字段,年月(YearMonth)、周数(WeekName)、一周第几天(DayOfWeek)...STEP 3 在画布中添加矩阵视觉对象,把周数放在行,星期放在列,生成日历框架,同时放一个年月的切片器筛选一个月份。...日:用MAX(DayOfMonth)可以返回数字,这里想让数字有特别的格式,所以在日历表放了一列UNICODE字符数字做的DayOfMonth列。...结果如下: 拓展 有了日历看板的框架,为值字段配上条件格式-背景色(比如销量),就可以做出日历热图了。图片

    11210

    【带着canvas去流浪(12)】用Three.js制作简易的MARVEL片头动画(上)

    大作业说明 通读完上一篇博文中提及的教程,觉得应该搞个大作业巩固一下所学的知识,想起刚上映的漫威宇宙第三阶段收官之作《蜘蛛侠·英雄远征》,于是决定仿一个MARVEL的片头动画作为three.js的课后练习...二.基本思路 简易片头动画的实现思路如下,除了正常的舞台元素外,需要背景音乐,使用THREE.AudioLoader就可以从后后台加载音乐,舞台中主要的实体元素是MARVEL这几个字母的立体模型,可以使用...THREE.TextGeometry来进行建模(【Three.js绘制字体模型】),它要求先载入字体文件,然后才能实例化,参考官方文档的实现就可以了。...有了字体模型以后,还需要一些影片素材贴在字体模型上,THREE.VideoTexture可以解决这个问题(【Three.js使用VideoTexture实现视频Video更新纹理】),它可以将HTML中的...当你构建一个立方体时,会发现它的faces属性数组中有12个面的信息,因为Three.js中默认使用三角面片来构建几何体,一个矩形表面需要用两个三角面片来构建,(你可以将立方体材料material中传入

    3.1K51
    领券