桌面日历软件
桌面日历软件
项目概述
这是一个基于 Electron 框架开发的跨平台桌面日历应用,提供直观的日历视图、事件管理、节假日显示和数据同步功能。
主要特性
- 📅 多视图支持:月视图、周视图、日视图和年视图
- 🎯 事件管理:添加、编辑、删除事件,支持分类和提醒
- 🎉 节假日显示:内置常见节假日,支持自定义节假日
- 💾 数据存储:本地存储,支持导出/导入 JSON 备份
- 🌙 主题切换:支持浅色和深色模式
- 🌍 跨平台:支持 Windows、macOS 和 Linux
技术栈
- 前端:HTML5 + CSS3 + JavaScript
- 框架:Electron ^28.0.0
- 构建工具:electron-builder ^24.0.0
- 存储:electron-store ^8.0.0
快速开始
环境要求
- Node.js v16.0.0 或更高版本
- npm 6.0.0 或更高版本
安装与运行
- 克隆项目
git clone https://gitee.com/zhang.wei/desktop-calendar.git
cd calendar
- 安装依赖
npm install
- 启动开发模式
npm start
- 打包应用
# 打包所有平台
npm run build
# 打包特定平台
npm run build -- --win # Windows
npm run build -- --mac # macOS
npm run build -- --linux # Linux
项目结构
calendar/
├── electron/ # Electron 主进程和预加载脚本
│ ├── main.js # 主进程:创建窗口和处理系统事件
│ └── preload.js # 预加载脚本:桥接主进程和渲染进程
├── src/ # 前端源码
│ ├── css/ # 样式文件
│ │ └── style.css # 主样式文件
│ ├── js/ # 核心逻辑
│ │ ├── app.js # 应用主逻辑
│ │ ├── calendar.js # 日历核心功能
│ │ ├── events.js # 事件管理
│ │ ├── settings.js # 设置管理
│ │ └── storage.js # 存储管理
│ └── index.html # 主界面
├── calendar-app/ # 备用应用结构
├── dist/ # 打包输出目录
├── package.json # 项目配置
├── README.md # 本文档
└── 打包部署指南.md # 打包与部署指南
核心功能
1. 日历视图
- 月视图:显示当月所有日期,突出显示当前日期和包含事件的日期
- 周视图:按周显示日期,适合查看一周的安排
- 日视图:详细显示当天的事件,按时间顺序排列
- 年视图:显示全年月份概览,快速导航到特定月份
2. 事件管理
- 添加事件:设置标题、时间、地点、描述和分类
- 编辑事件:修改现有事件的所有属性
- 删除事件:移除不需要的事件
- 事件分类:支持工作、个人、重要等分类,不同分类显示不同颜色
- 事件提醒:设置提前提醒时间,支持系统通知
- 重复事件:支持每天、每周、每月、每年重复
3. 节假日显示
- 内置节假日:包含常见的法定节假日
- 自定义节假日:支持添加和管理自定义节假日
4. 数据管理
- 本地存储:使用 electron-store 进行本地数据持久化
- 数据导出:导出为 JSON 文件,用于备份
- 数据导入:从 JSON 文件导入数据,用于恢复或迁移
5. 设置功能
- 主题设置:切换浅色/深色模式
- 语言设置:支持多语言(目前仅支持中文)
- 提醒设置:配置提醒声音和方式
- 默认视图:设置启动时默认显示的视图
开发指南
启动开发模式
npm start
代码规范
- 使用 2 个空格进行缩进
- 变量命名使用驼峰命名法
- 函数命名使用动词开头的驼峰命名法
- 常量使用全大写字母,单词间用下划线分隔
- 注释使用 JSDoc 格式
调试技巧
- 主进程调试:在
package.json中添加--inspect标志 - 渲染进程调试:在应用中按
Ctrl+Shift+I打开开发者工具 - 日志输出:使用
console.log()在控制台查看输出
构建与发布
构建配置
构建配置在 package.json 文件的 build 字段中定义:
"build": {
"appId": "com.desktop.calendar",
"productName": "Desktop Calendar",
"directories": {
"output": "dist"
},
"win": {
"target": ["nsis", "portable"]
},
"mac": {
"target": "dmg"
},
"linux": {
"target": ["deb", "rpm", "AppImage"]
}
}
构建命令
# 构建所有平台
npm run build
# 构建特定平台
npm run build -- --win # Windows
npm run build -- --mac # macOS
npm run build -- --linux # Linux
发布流程
- 更新版本号(在
package.json中) - 运行构建命令
- 测试构建产物
- 发布到相关平台
贡献指南
提交代码
- Fork 项目
- 创建功能分支
- 提交更改
- 创建 Pull Request
报告问题
在 GitHub Issues 中报告问题时,请提供以下信息:
- 操作系统版本
- 应用版本
- 具体问题描述
- 重现步骤
- 相关截图(如果有)
功能请求
欢迎提出新功能请求,在 GitHub Issues 中详细描述您希望添加的功能。
许可证
本项目采用 MIT 许可证。详见 LICENSE 文件。
致谢
- Electron - 跨平台桌面应用框架
- electron-builder - 应用打包工具
- electron-store - 本地数据存储
联系方式
- Q:372806800
更新日志
v1.0.0 (2026-02-24)
- ✨ 初始版本发布
- 📅 实现月视图、周视图、日视图和年视图
- 🎯 实现事件管理功能
- 🎉 实现节假日显示
- 💾 实现本地存储和数据导出/导入
- 🌙 实现主题切换
- 🌍 支持 Windows、macOS 和 Linux
注意:本项目仍在开发中,部分功能可能会有变化。
祝您使用愉快! 📅
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
作者:风来风往风伤
出处:http://www.cnblogs.com/amwuau/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。

浙公网安备 33010602011771号