WorkDay · 项目介绍

WorkDay

本页由项目自动归档生成,源码与最新进展以 GitHub 仓库为准。

项目简介

WorkDay 是一个「工作日 / 调休 / 节假日」计算工具:给定起止日期,统计总天数、工作日、休息日、周末,以及国务院调休 / 调班的明细,并支持把日期列表导出 CSV。它以多端形式实现,覆盖 Web、微信小程序、Java 服务端、Node.js 服务端和桌面端。

备注:本地可读取的源码为上述 Web / 小程序 / Java / 桌面多端实现;博客归档分类中的鸿蒙(ArkTS)版本在本地仓库缺失,且本次 WebFetch 访问 GitHub 失败,故鸿蒙端内容以 GitHub 仓库为准。以下按本地真实代码描述。

技术栈

维度 技术
主要语言/框架 TypeScript / JavaScript(Vue 3)、Java(Spring Boot)、微信小程序原生、Node.js(Express)
关键依赖/库 Vue 3 + Element Plus + Pinia + Vite + Electron(桌面端);Spring Boot 2.7 + Jedis(Java 端);Express + MongoDB + Redis + Jade(Node 端);微信小程序云开发 + Supabase
数据存储 Supabase(节假日表,anon 只读 + RLS)、MongoDB / Redis(Node 端)、本地 holidayData 兜底
运行/部署 Cloudflare Workers(hummingg-com/workday Web)、Electron 打包多平台、微信开发者工具、Maven(Java 端)

核心功能 / 亮点

  • 工作日 / 调休区间计算:给定起止日期,统计总天数、工作日、休息日、周末,以及调休 / 调班明细,并支持导出 CSV(hummingg-com/workday/src/components/WorkDay.vue + src/utils/holidayService.js)
  • 多数据源节假日服务:holidayService 采用 Supabase → 过期缓存 → 本地 holidayData 三级降级链路,含脏数据归一化(normalize)(hummingg-com/workday/src/utils/holidayService.js)
  • 微信小程序「工作日大师」:原生小程序 + 云函数 holidayQuery + Supabase + Jest 单测(ai-coding/workday/wxmini/Mine/WorkDay)
  • Java 服务端:Spring Boot 2.7.13 Web 服务,Jedis 操作 Redis,Lombok(ai-coding/workday/java/workday)
  • Node.js 服务端:Express + MongoDB + Redis + Jade 模板(ai-coding/workday/nodejs/workday)
  • 桌面端「工作日大师」:Vue 3 + Electron + Element Plus + dayjs + xlsx,Vite 构建、electron-builder 打包 Windows / macOS / Linux(ai-coding/workday/desktop/Workday)

目录结构

1
2
3
4
5
6
7
8
9
10
workday/(多端实现,分布在两个本地仓库)
├── hummingg-com/workday/ # Vue 3 Web 版,Cloudflare Workers 部署
│ ├── src/components/WorkDay.vue
│ ├── src/utils/holidayService.js # 三级降级节假日数据源
│ └── src/utils/holidays.js # 本地节假日数据兜底
└── ai-coding/workday/
├── nodejs/workday/ # Express + MongoDB + Redis 服务端
├── java/workday/ # Spring Boot 2.7 Web 服务
├── wxmini/Mine/WorkDay/ # 微信小程序(云函数 + Supabase + Jest)
└── desktop/Workday/ # Vue 3 + Electron 桌面端

相关链接

  • GitHub 仓库:WorkDay
  • 注:本地未检出鸿蒙(.ets)源码;WebFetch 访问 GitHub 失败,鸿蒙端内容以仓库为准。