一个功能丰富的现代化日历应用,支持ICS文件导入、热力图可视化和多维度统计分析。
- 紫色渐变背景:优雅的视觉体验
- 毛玻璃效果:现代化卡片设计
- 流畅动画:悬停、点击和过渡效果
- 响应式设计:适配各种屏幕尺寸
- Font Awesome图标:丰富的视觉元素
- 可视化活动密度:通过颜色深浅显示每日活动强度
- 智能统计:自动计算总时长、平均每日时长、活跃天数
- 拖拽上传:支持拖拽ICS文件到页面
- 搜索功能:快速查找特定日期的活动
- 时间范围筛选:按年、月、周查看数据
- 批量文件上传:同时处理多个ICS文件
- 多维度统计:按天、周、月、年进行数据分析
- 四种可视化图表:
- 📈 时长趋势图:显示时间变化趋势
- 🥧 活动分布图:按文件类型统计活动分布
- 📊 时段分析图:分析一天中的活动模式
- 图表放大功能:点击图表可放大查看详细信息
- 智能统计卡片:显示关键指标和数据洞察
- 工作日筛选:可选择特定工作日进行分析
- 时间范围控制:精确控制统计时间范围
- 文件管理:上传文件状态显示和移除功能
- 通知系统:成功/错误状态智能提示
git clone [项目地址]
cd calendar由于使用了现代Web API,需要通过HTTP服务器运行:
使用Python(推荐):
# Python 3
python -m http.server 8000
# Python 2
python -m SimpleHTTPServer 8000使用Node.js:
npx http-server使用Live Server(VS Code扩展):
- 安装Live Server扩展
- 右键点击
index.html选择"Open with Live Server"
打开浏览器访问:http://localhost:8000
-
上传ICS文件:
- 拖拽ICS文件到上传区域
- 或点击上传区域选择文件
-
查看热力图:
- 颜色越深表示当天活动越多
- 点击日期查看详细活动信息
-
统计信息:
- 查看总时长、平均每日时长、活跃天数
- 支持按年、月、周筛选
-
批量上传文件:
- 同时选择多个ICS文件
- 查看上传状态和进度
-
选择统计维度:
- 按天:查看每日活动趋势
- 按周:查看每周活动模式
- 按月:查看每月活动分布
- 按年:查看年度活动概览
-
时间范围筛选:
- 选择特定年份、月份或周数
- 统计数据自动更新
-
图表交互:
- 点击图表可放大查看
- 支持图表数据导出
- HTML5:语义化标记
- CSS3:现代样式和动画
- JavaScript (ES6+):模块化开发
- Chart.js:数据可视化
- Font Awesome:图标库
- Google Fonts:字体支持
- ICS文件解析:支持标准iCalendar格式
- 数据可视化:多种图表类型
- 响应式设计:移动端适配
- 模块化架构:易于维护和扩展
calendar/
├── index.html # 主页面
├── calendar.js # 热力图日历功能
├── statistics.js # 统计分析功能
├── README.md # 项目说明文档
└── sample-files/ # 示例ICS文件(可选)
应用支持标准的iCalendar (.ics) 格式文件,包括:
- VEVENT:事件信息
- DTSTART/DTEND:开始和结束时间
- SUMMARY:事件标题
- DESCRIPTION:事件描述
- LOCATION:事件地点
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Example Corp//Example Calendar//EN
BEGIN:VEVENT
UID:example@example.com
DTSTART:20240101T090000Z
DTEND:20240101T100000Z
SUMMARY:会议
DESCRIPTION:项目讨论会议
LOCATION:会议室A
END:VEVENT
END:VCALENDAR在CSS中修改CSS变量来自定义主题:
:root {
--primary-color: #8b5cf6;
--secondary-color: #a78bfa;
--accent-color: #c4b5fd;
/* 更多颜色变量... */
}在statistics.js中可以添加新的统计维度或修改现有逻辑。
-
文件上传失败
- 确保文件是有效的ICS格式
- 检查文件大小是否过大
- 确认浏览器支持File API
-
图表不显示
- 检查是否通过HTTP服务器访问
- 确认Chart.js库正确加载
- 检查控制台是否有JavaScript错误
-
样式显示异常
- 确认网络连接正常(外部字体和图标)
- 检查CSS文件是否正确加载
- 清除浏览器缓存
欢迎提交Issue和Pull Request来改进项目!
- Fork项目
- 创建功能分支
- 提交更改
- 创建Pull Request
本项目采用MIT许可证 - 查看LICENSE文件了解详情。
- Chart.js - 数据可视化
- Font Awesome - 图标库
- Google Fonts - 字体支持
享受使用这个现代化日历应用! 🎉
如有问题或建议,请随时联系或提交Issue。