月历生成
转换所有处理都在浏览器本地完成,数据不上传服务器
产物是等宽文本的月历网格,不是一张画出来的表 —— 因为它要能粘进工单、周报、代码注释、`README` 里的排期表,贴到哪里都对齐。 输入年月(`2026-10`、`2026/10`、`2026年10月` 都认)留空就是本月;可以一次出多个月,跨年会自动接上。两个选项管的是不同场合的习惯:一周从周一还是周日开始(中文与欧洲习惯周一,北美习惯周日),以及要不要显示 ISO 周数(排期与「第几周汇报」的场合需要)。 ⚠️ 周数按 ISO 8601:一周从周一开始,且包含 1 月 4 日的那一周是第 1 周。所以 1 月 1 日可能属于上一年的第 52 或 53 周,12 月 31 日也可能属于下一年的第 1 周。这个口径与「从元旦数 7 天算一周」不同,而后者在年初年尾会整体差一周 —— 排期表对不上通常就是这里出的问题。 全部计算按 UTC 的日期做,与你的时区无关:日历是纯日期问题,用本地时间会让同一个「2026 年 10 月」在不同时区算出不同的第一天是星期几。
功能
- 等宽文本网格,可直接粘进工单、周报、代码注释
- 认 `2026-10`、`2026/10`、`2026年10月`、`2026-10-05` 几种写法;留空即本月
- 一周可以从周一开始(中文与欧洲习惯)或从周日开始(北美习惯)
- 可显示 ISO 8601 周数 —— ⚠️ 按「包含 1 月 4 日的那一周是第 1 周」,年初年尾不会差一周
- 一次出 1–12 个月,跨年自动接上
- 闰年按「4 整除且非 100 整除,或 400 整除」判(1900 不是、2000 是)
- 列宽按显示宽度对齐:中文表头「一」占两格,也能与下面的数字对齐
- 最后一行「今天」的说明单独一行,不进网格 —— 进了会破坏对齐
- 全部在浏览器本地完成,不联网
使用方法
- 输入年月(留空就是本月)
- 按需要切换一周的起始日、是否显示周数
- 要排期就填一次显示几个月
- 复制整块网格贴到你要用的地方
常见问题
- 为什么这一行的周数是上一年的 52/53 周?
- 因为 ISO 8601 的周数不是按自然年切的,而是按「包含 1 月 4 日的那一周是第 1 周」定的。于是 1 月 1 日到第一个周一之间那几天属于上一年的最后一周(第 52 或 53 周),12 月 31 日也可能属于下一年的第 1 周。这是国际标准的口径,排期、周报、以及 Git 之类的工具都用它 —— 用「从元旦数 7 天」的写法在年初年尾会整体差一周,两个系统一对就对不上。
- 一周该从周日还是周一开始?
- 看你和谁对齐:中文与欧洲的习惯是周一开头,北美是周日开头,而 ISO 8601 规定周一。工具把这件事做成选项而不是替你决定 —— 但要注意周数的编号始终按 ISO(周一起始)算,即使你选了周日开头。也就是说选了周日时,表里那一行可能跨越两个 ISO 周,显示的是该行周四所在的周数。
- 为什么今天没有在网格里高亮?
- 因为加一个记号(比如星号)会让那一格变成三列宽,整行往后错一格 —— 而这个工具的产物就是要粘出去还对得齐。所以今天的信息放在网格下面单独一行(日期 + ISO 周数),既不破坏对齐,也比一个记号说得多。需要看今天的日期,留空输入直接生成本月即可。
- 能生成很长一段时间的日历吗?
- 一次最多 12 个月,够覆盖一个项目周期。要更长的话分几次生成、或者按年要 —— 这个工具刻意不做「一次出十年」,那既没有可读性,也会让结果页变得很长。要算两个日期差多少天、某个节日在哪天,用「日期计算」那个工具更合适。
相关工具
日期计算
转换算两个日期之间相差多少天,或给一个日期加减若干天、周、月。日期用日历挑或直接粘贴,结束日期留空就与今天比较。全部在浏览器本地完成。
时间戳转换
转换把 Unix 时间戳还原成日期时间,或反过来。秒 / 毫秒 / 微秒 / 纳秒自动识别,支持小数、负数与 Windows FILETIME。全部在浏览器本地完成。
跨时区会议时间
转换把多个时区的 24 小时排成一张对照表,标出各城市的工作时段、当地星期与日期偏移,并找出所有人都在工作时段的重叠区间。含夏令时。
进制转换
转换在二、八、十、十六、36、64 进制之间互转,六种结果一次全部给出,19 位的雪花 ID 也能一位不差。全部在浏览器本地完成。
Cron 解析
转换把 cron 表达式逐字段讲成人话,算出接下来几次与上一次的执行时间;永远不会触发的表达式会当场说明原因。全部在浏览器本地解析。
颜色转换
转换在 HEX、RGB、HSL、HWB、CMYK 与 OKLab、OKLCH、Lab、XYZ 之间互转,另给出色温、反色、互补色、最接近的 ANSI 终端色与 WCAG 对比度。全部在浏览器本地完成。