Skip to content
logan-suuPublic

About

秋招笔试与面试日程规划工具|彩色时间轴、冲突检测、笔试窗口安排、全球城市时区与夏令时自动换算,手机适配、持久保存。Recruitment scheduler with worldwide timezone conversion and conflict detection.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Timer · 秋招日程

中文秋招时间规划工具,用彩色时间条安排笔试、面试和准备事项,查看时间冲突,并在全球城市时区之间转换。

支持全球城市时区与夏令时 / 冬令时、固定开考和窗口内任选的笔试、手机布局,以及重启后保留数据。

快速运行

需要 Node.js 22 或更新版本。

git clone https://github.com/logan-suu/Timer.git
cd Timer
npm ci
npm run dev

打开 本机日程页面。在运行窗口按 Control + C 关闭,保存的数据仍会保留。

macOS 也可以双击 启动秋招日程.command 或 启动本地秋招日程.command 启动,双击 关闭秋招日程.command 停止。首次启动会安装依赖并构建本地版本;需要已安装 Node.js。

运行构建后的本地版本:

npm run build
npm start

使用

  • 点击「新建日程」或周历空白时间格,填写公司、日程名称、开始和结束时间。
  • 新建笔试时填写开始、结束时间,并选择「笔试时长」。提供常用时长和自定义分钟数。时间段长于作答时长时,自动识别为「窗口内任选」;相等时为「固定开考」;短于作答时长时会提示调整时间。识别基于实际经过时间,自动考虑夏令时切换。
  • 可选笔试保留窗口开放时间、完成截止时间和作答用时,可暂不安排具体时间。旧的固定笔试如果还没有记录作答时长,会保留原安排;补充时长后按同样规则识别。
  • 可选窗口以对应颜色的卡片单独显示在周历上方,保留截止时间提醒;整段窗口不会占用日历,也不会因为与其他窗口重叠而误报冲突。
  • 点击窗口卡片,选择建议的连续空闲时段,或勾选「安排具体作答时间」自行填写开始时间。作答必须完整落在窗口内;保存后仅实际作答时段显示为彩色时间条并参与冲突检查。建议会避开已确定的日程和已过去的时间,未安排的笔试仍需分别分配时间。
  • 笔试默认紫色、面试蓝色、准备绿色、其他橙色;可以单独更改每条日程的颜色。
  • 重叠事件在同一天内并排展示,带红色描边。「冲突检查」列出全部冲突及准确重叠时段;相邻但不重叠的日程不会误报。
  • 点击时间条编辑或删除;也可以切换列表、搜索公司、筛选类型、选择日期。
  • 日历上方可搜索并选择全球城市的「日历显示时区」和「对照时区」,支持中文城市名、英文名称及完整时区标识。可以交换两地时区,或点击「使用设备时区」。周历、列表和冲突时段均跟随所选时区;每个时间后标注对应地区。
  • 新用户首次打开时采用设备时区显示日历,已保存的用户设置保持不变。秋招通知默认按北京时间录入,也可以在「通知 / 录入时区」中搜索任意城市;保存后记住这次录入时区。切换时区会换算已填写的时间,保持同一实际时刻。
  • 按所选城市和日程日期换算时差,自动处理各地的夏令时、南半球规则,以及半小时、45 分钟偏移。跳过的当地时间不能保存,重复时间需要明确选择第一次或第二次;时制切换日的周历以该日期列内标注的时刻为准。
  • 表单预览会显示录入地区和日历地区的日期、时间及当天 UTC 偏移。跨越时制切换时显示前后偏移及实际时长;重复的钟表时间会额外标注偏移,便于区分。笔试安排时间轴也支持独立搜索和选择全球时区。
  • 手机宽度下按天显示周历,可点击顶部日期切换当天。
  • 首次打开显示明确标注的示例预览。创建第一条个人日程,或点击「开始我的规划」,会退出示例;示例不会混入个人备份。

时间状态

  • 未开始:保留事项颜色,并显示状态标签。
  • 进行中:显示绿色状态标记。
  • 已结束:已安排的时段已经过去,使用灰色底显示;不表示手动确认完成。
  • 待安排:可选笔试窗口已经开放,尚未选择具体作答时间。
  • 已过期:尚未安排作答的笔试窗口已经截止。

列表可以筛选「全部」「未结束」「已结束 / 过期」。状态在开始、结束或截止时自动更新;切换显示时区不会改变状态。过去的事项仍可查看和编辑,历史冲突保留红色描边。

数据保存

本地日程保存在 .data/schedule.json,上一版备份在 .data/schedule.backup.json。保存先写入临时文件并同步到磁盘,再原子替换主文件;主文件损坏时会尝试恢复上一版。版本检查防止较旧窗口覆盖新修改。

关闭网页、停止服务或重启电脑后,重新启动会加载已有数据。不要删除 .data/。可通过「备份管理」导出、合并或替换导入 JSON 备份。

本地服务默认只监听 127.0.0.1。本地文件不会自动同步到其他设备;手机在电脑关闭后独立使用,需要自行配置 cloud/ 中的云端版。

本仓库只包含程序、测试和明确标注的示例,不包含作者的个人日程、备份、登录凭据、私人站点地址或部署身份。

项目结构

目录 内容
src/ React / TypeScript 界面
shared/ 时间换算、冲突、连续时段和状态判断
server/ 本地服务和持久保存
tests/ 时间、夏令时、冲突和存储测试
cloud/ 可自行配置的私人云端版本
design/ 界面概念图与设计说明

验证

npm test
npm run build

测试覆盖全球时区、跨地区夏令时日期、南半球与半小时调整、午夜跳时、固定与可选笔试、连续作答时段、窗口截止、跨天和跨时区冲突、夏令时跳过与重复小时、23 / 25 小时日历、事项状态边界、重启读取、备份恢复、旧数据兼容和多窗口写入保护。

界面使用 React、TypeScript 和 Vite。云端版使用 Vinext、Cloudflare Workers 和 D1;随附第三方代码保留其原有许可文件。

About

秋招笔试与面试日程规划工具|彩色时间轴、冲突检测、笔试窗口安排、全球城市时区与夏令时自动换算,手机适配、持久保存。Recruitment scheduler with worldwide timezone conversion and conflict detection.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages