工作日计算器
productivitylaunched

工作日计算器

再也不用翻日历瞪着日期挨个数了!在这里精准计算工作日,支持多种工作制和自定义节假日!

猫
作者
猫切切切切切
39 浏览2025年10月上线
变现方式完全免费
⚡

技术栈

Next.js
React
Node.js
Supabase
PostgreSQL
Tailwind CSS
TypeScript

工作日计算器

"算工作日,不算摸鱼" 🐟

#📋 项目概览

工作日计算器是一个专为现代打工人设计的智能工作日计算工具,支持多种工作制模式,提供精准的工作日计算和可视化展示功能。项目采用现代化技术栈构建,支持多语言国际化,已成功部署至生产环境并获得良好的用户反馈。

  • ▸项目名称: 工作日计算器 (Workday Calculator)
  • ▸项目口号: "算工作日,不算摸鱼"
  • ▸在线地址: [部署在 Vercel 平台]
  • ▸开发周期: 3天 MVP → 持续迭代优化
  • ▸技术栈: Next.js 15 + React 19 + TypeScript + Tailwind CSS

#🎯 项目背景

市场需求分析

在现代职场环境中,工作制度日趋多样化:

  • ▸传统做五休二: 仍是主流,但需要考虑法定节假日
  • ▸做六休一: 部分行业和公司采用
  • ▸大小周制度: 互联网公司常见,计算复杂
  • ▸弹性工作制: 自定义工作日安排

现有工具存在的痛点:

  1. ▸功能单一: 大多数日历工具只支持标准工作制
  2. ▸计算不准: 无法准确处理中国法定节假日和调休
  3. ▸用户体验差: 界面陈旧,缺乏现代化设计
  4. ▸缺乏情绪价值: 纯工具性,缺少趣味性和情感共鸣

目标用户群体

  1. ▸

    大小周/弹性工作制打工人 (核心用户)

    • ▸需要精确计算复杂工作制下的工作日
    • ▸关注工作生活平衡,需要"破防倒计时"等情绪价值
  2. ▸

    HR和行政人员 (专业用户)

    • ▸需要计算考勤、排班、薪资结算
    • ▸要求计算准确性和专业性
  3. ▸

    群聊斗图党 (娱乐用户)

    • ▸使用梗图生成功能制作表情包
    • ▸分享工作日计算结果到社交媒体

#⚡ 核心功能

🗓️ 多种工作制支持

预置工作制模板

  • ▸

    做五休二 (5天工作2天休息)

    • ▸标准周一到周五工作制
    • ▸自动识别周末和法定节假日
  • ▸

    做六休一 (6天工作1天休息)

    • ▸周一到周六工作,周日休息
    • ▸适用于零售、服务业等行业
  • ▸

    大小周 (双周循环工作制)

    • ▸第一周:周一到周五工作 (5天)
    • ▸第二周:周一到周六工作 (6天)
    • ▸支持"本周六是否为工作日"的智能判断
  • ▸

    自定义工作制

    • ▸日历可视化选择工作日
    • ▸支持CSV文件批量导入
    • ▸灵活适应各种特殊工作安排

智能节假日识别

  • ▸中国法定节假日: 自动识别2024-2025年所有法定节假日
  • ▸调休安排: 准确处理节假日调休的工作日安排
  • ▸自定义假期: 支持添加公司内部假期、个人请假等

📊 智能计算引擎

核心算法特性

  • ▸精确计算: 基于日期库 date-fns 4.1.0 确保计算准确性
  • ▸实时更新: 支持日期范围变更后的实时重新计算
  • ▸边界处理: 正确处理跨月、跨年的日期计算
  • ▸性能优化: 大数据量计算优化,支持长时间范围计算

计算结果展示

  • ▸工作日统计: 精确的工作日和休息日数量
  • ▸工作周数: 按标准工作周计算的周数统计
  • ▸进度指示: 当前月份和周的工作进度百分比
  • ▸下次假期: 智能预测下一个休息日或假期

🎨 趣味功能

梗图生成器

  • ▸6套主题皮肤:
    • ▸赛博朋克风格
    • ▸简约商务风格
    • ▸可爱卡通风格
    • ▸复古怀旧风格
    • ▸科技未来风格
    • ▸温馨治愈风格
  • ▸一键生成: 自动生成包含计算结果的分享图片
  • ▸高清导出: 支持PNG格式高清图片下载

破防倒计时

  • ▸实时倒计时: 距离下次休息日的精确时间
  • ▸进度条显示: 可视化展示工作进度
  • ▸情绪共鸣: "还有X天X小时X分钟"的贴心提醒

毒鸡汤彩蛋

  • ▸随机触发: 每3次计算随机弹出1条
  • ▸内容丰富: 包含摸鱼技巧、职场吐槽、励志鸡汤等
  • ▸情绪价值: 为枯燥的工作计算增添趣味性

🔗 分享功能

专属海报生成

  • ▸个性化设计: 包含用户计算结果的定制海报
  • ▸二维码集成: 自动生成短链二维码,方便分享传播
  • ▸社交优化: 适配微信、微博等主流社交平台尺寸

短链分享系统

  • ▸8位短码: 基于 nanoid 生成的唯一标识
  • ▸参数保存: 自动保存计算参数,支持一键复现
  • ▸访问统计: 跟踪分享链接的访问数据

#🛠️ 技术实现

前端架构

核心框架

  • ▸

    Next.js 15.2.4:

    • ▸采用 App Router 架构
    • ▸支持 SSR/SSG 混合渲染
    • ▸自动代码分割和性能优化
    • ▸内置 API Routes 支持
  • ▸

    React 19:

    • ▸最新的 React 版本
    • ▸支持并发特性和 Suspense
    • ▸优化的 Hooks 性能
  • ▸

    TypeScript 5:

    • ▸全项目类型安全
    • ▸严格的类型检查配置
    • ▸优秀的开发体验和代码提示

UI 组件系统

  • ▸

    Tailwind CSS 4.1.9:

    • ▸原子化 CSS 框架
    • ▸响应式设计支持
    • ▸深色/浅色主题切换
    • ▸自定义设计系统
  • ▸

    Radix UI:

    • ▸无障碍访问支持
    • ▸高质量的基础组件
    • ▸完全可定制的样式
  • ▸

    Lucide React:

    • ▸现代化图标库
    • ▸一致的视觉风格
    • ▸轻量级 SVG 图标

状态管理

  • ▸

    Zustand:

    • ▸轻量级状态管理库
    • ▸简洁的 API 设计
    • ▸TypeScript 友好
    • ▸支持持久化存储
  • ▸

    React Hook Form:

    • ▸高性能表单处理
    • ▸最小化重渲染
    • ▸内置验证支持
  • ▸

    Zod 3.25.67:

    • ▸运行时类型验证
    • ▸与 TypeScript 完美集成
    • ▸详细的错误信息

核心算法实现

工作日计算引擎 (calculation-engine.ts)

export class WorkDayCalculator {
  // 核心计算逻辑
  calculate(): CalculationResult {
    // 1. 日期范围遍历
    // 2. 工作制模式匹配
    // 3. 节假日规则应用
    // 4. 自定义规则处理
    // 5. 统计结果生成
  }
  
  // 大小周智能判断
  private createBigSmallScheduleWithSaturday(isSaturdayWorkDay: boolean) {
    // 根据当前周六状态动态生成大小周模式
  }
}

工作制模式系统 (work-schedules.ts)

  • ▸模式定义: 使用二进制字符串定义工作模式
  • ▸循环计算: 支持周循环和双周循环
  • ▸动态生成: 根据用户选择动态生成工作制

国际化系统 (i18n.ts)

  • ▸12种语言支持: 中文、英文、日文、韩文等
  • ▸动态路由: /[locale]/ 路由结构
  • ▸SEO优化: 每种语言独立的 meta 信息

后端服务

API 设计

  • ▸RESTful API: 标准的 REST 接口设计
  • ▸类型安全: 请求/响应的完整类型定义
  • ▸错误处理: 统一的错误响应格式
  • ▸性能优化: 计算结果缓存机制

数据存储

  • ▸Supabase:
    • ▸PostgreSQL 数据库
    • ▸实时数据同步
    • ▸用户认证系统
    • ▸文件存储服务

部署架构

Vercel 平台部署

  • ▸自动化部署: Git 提交自动触发部署
  • ▸全球 CDN: 边缘计算和缓存优化
  • ▸性能监控: 内置的性能分析工具
  • ▸域名管理: 自定义域名和 SSL 证书

性能优化

  • ▸代码分割: 按路由自动分割代码
  • ▸图片优化: Next.js Image 组件优化
  • ▸字体优化: Geist 字体的最优加载
  • ▸缓存策略: 静态资源和 API 缓存