万年历翻页

PC 端日历交互/节气/节日叠加

423 次访问

万年历 · 1900-2100

本月节气

农历 → 公历

输入农历年月日,自动换算公历

使用提示

日期标记:右上角红点 = 法定节假日 / 金点 = 调休补班 / 红色数字 = 周末

键盘导航← → 切月 · ↑ ↓ 切年 · T 回到今天 · Enter 选中日期跳转详情

点击日期:右侧详情面板显示完整农历 / 干支 / 生肖 / 星座 / 节气倒计时 / 距今天数

范围:公历 1900-2100,农历 1900-2099(涵盖大多数日常查询场景)

关于本工具

了解工具定位 · 使用场景 · 对比优势

PC 端日历翻页工具,支持鼠标滚轮逐月浏览、快速跳转到任意年月,并自动叠加二十四节气与公历、农历节日。适合需要频繁查阅节气日期、规划节日排期的办公场景。页面交互完全在浏览器本地完成,无需上传任何数据。

使用场景

📅

节气养生规划

中医养生爱好者需要根据二十四节气调整饮食作息,但传统日历上的节气日期常被忽略。本工具以翻页日历形式清晰标注每个节气的公历日期与时辰,点击节气名称可直接查看该节气的气候特点与养生建议,帮助用户提前准备当季食谱与作息调整,不再错过立春养肝、冬至进补等关键节点。

🎓

传统文化备课

中小学语文教师在讲授《二十四节气歌》或《传统节日》单元时,需要向学生展示节气与节日的具体日期及由来。本工具提供交互式日历,教师可快速翻查到任意年份的节气时刻与法定节假日,并查看节日简介,便于在课堂上结合真实日期讲解习俗,增强学生对时间与文化的直观理解。

🏢

活动排期避节

企业行政在安排年会、团建或培训日期时,需要避开法定节假日与调休日,以免与员工休假冲突。本工具以翻页形式一目了然地展示全年节假日与调休安排,行政人员可快速定位非假期的工作日,结合节气变化(如避开霜降前后易感冒时段)选择最佳活动日期,提高出勤率与参与体验。

🌾

农事节气提醒

种植户或农场管理者需要根据节气安排播种、施肥与收割,但传统农历日期与公历对应关系复杂。本工具将二十四节气与公历日期并列展示,用户翻到对应月份即可看到该月包含的节气名称与具体日期,例如“芒种”前后适合播种水稻,“霜降”后需防冻害,帮助农事决策更精准。

📆

个人日程锚点

自由职业者或远程工作者常因缺乏固定作息而模糊时间感知,需要借助节气与节日作为时间锚点来规划长期任务。本工具提供简洁的翻页日历,用户可快速查看未来三个月内的节气与节日,例如在“清明”前完成春季项目总结、“立秋”后启动秋冬计划,让时间管理有自然节奏可依。

对比矩阵本工具 vs 竞品 vs 传统方法

维度本工具(万年历翻页)竞品 A(中华万年历网页版)传统方法(纸质日历/挂历)
数据隐私纯浏览器端运行,无数据上传需联网加载,部分功能可能上传数据完全离线,无电子数据
处理速度点击即切换,毫秒级响应受网络影响,切换需 1-3 秒加载手动翻页,速度取决于操作者
离线可用完全离线(单页应用,加载后无需网络)需保持网络连接完全离线
功能范围仅万年历翻页、节气、节日展示包含万年历、黄历、吉日查询、天气等综合功能仅显示日期、节气、节日,无交互
交互体验鼠标拖拽/滚轮翻页,流畅动画点击按钮翻页,页面有广告干扰物理翻页,无动画
平台依赖任何现代浏览器(PC/移动端)浏览器,但部分功能需 App需要纸质载体
成本免费,无广告免费,含广告需购买纸质日历,成本几元到几十元不等

使用指南

上手步骤 · 输入输出 · 避坑提示

使用步骤

  1. 在日历上点击任意日期,查看该日对应的公历、农历、星期及节气信息
  2. 点击月份左右箭头(← →)切换月份,或点击年份数字直接跳转到指定年份
  3. 鼠标悬停在节气或节日标签上,查看该节气的具体时间或节日说明
  4. 点击「今日」按钮快速回到当前日期视图

输入输出示例7 个典型场景,覆盖常规、边界与易错

输入输出说明
2026-02-182026年2月18日 星期三 农历正月初二 雨水典型场景:查看某日节气叠加农历日期
2025-01-292025年1月29日 星期三 农历正月初一 春节典型场景:查看法定节日(春节)
2024-02-292024年2月29日 星期四 农历正月二十 无节日边界 case:闰年2月29日,检查闰日是否正常显示
1900-02-011900年2月1日 星期四 农历正月初二 无节日边界 case:1900年非闰年(公历规则),验证农历兼容性
2025-01-012025年1月1日 星期三 农历腊月初二 元旦易错 case:元旦是公历节日,与农历腊月并存
2025-06-212025年6月21日 星期六 农历五月廿六 夏至典型场景:夏至节气,白昼最长的一天
2025-10-012025年10月1日 星期三 农历八月初十 国庆节易错 case:国庆节固定公历日期,农历日期每年不同

常见错误对照6 个常踩的坑 · 错误 → 修复

1. 把农历日期当作公历日期输入

错误
在日期选择器里选了「2024-01-01」以为是大年初一
修复
确认所选日期是公历 2024-01-01(元旦),农历正月初一对应公历 2024-02-10

日历工具默认使用公历(格里历)日期选择器;农历日期需通过翻页或节气标注辅助判断,不能直接按数字对应。

2. 误以为节气日期每年固定不变

错误
认为「清明」永远是 4 月 5 日,翻到 2025 年 4 月 5 日找清明
修复
查看工具节气标注:2025 年清明在 4 月 4 日;2026 年在 4 月 5 日

节气基于太阳黄经 0°/15°/… 精确计算,公历日期每年浮动 ±1 天;工具已自动标注,不需要用户记忆固定日期。

3. 在只有公历的月份翻页找农历闰月

错误
翻到公历 2023 年 3 月,问「怎么没有闰二月?」
修复
翻到公历 2023 年 3 月 22 日之后,看到农历显示「闰二月初一」

闰月是农历概念,公历月份不包含闰月;工具在农历区域标注「闰X月」,公历月份翻页不会单独显示一个「闰月」。

4. 把「忌」当作绝对禁止事项

错误
看到某日「忌:出行」,认为那天绝对不能出门
修复
理解黄历「忌」为传统择日参考,非强制禁令;工具仅展示历法数据,不提供吉凶解读

黄历「宜/忌」来自《协纪辨方书》等通书,是民间择日习俗,不同版本有差异;工具展示原始数据,不替代个人判断。

5. 跨年份翻页时忘记调整月份

错误
从 2024 年 12 月连续翻到下一年,以为会自动跳到 2025 年 1 月
修复
翻到 2024 年 12 月后,点击年份切换按钮或手动输入 2025-01

部分日历翻页控件逐月翻动时只改变月份,年份不会自动进位;需显式修改年份或使用「跳转至」功能。

6. 把「星期」和「农历日」混淆

错误
看到农历「初七」以为是星期一
修复
星期看公历区域顶部的「一/二/三…」或「Mon/Tue…」;农历日期看「正月/二月…初X」

星期是公历 7 天周期,农历日以朔望月为周期;两者无固定对应关系,工具在界面不同区域分别展示。

工作原理

公式推导 · 流程图解 · 依据出处

核心公式

JD = 367×Y - INT(7×(Y+INT((M+9)/12))/4) + INT(275×M/9) + D + 1721013.5 + UT/24

变量说明

  • JD — 儒略日数(Julian Day Number)
  • Y — 公历年份(整数)
  • M — 公历月份(1-12)
  • D — 公历日期的日部分(含小数)
  • UT — 世界时(小时,0-24)

示例

计算 2024 年 3 月 20 日 4:06(春分时刻)的儒略日。Y=2024,M=3,D=20+6/60=20.1,UT=4.1。JD = 367×2024 - INT(7×(2024+INT((3+9)/12))/4) + INT(275×3/9) + 20.1 + 1721013.5 + 4.1/24 = 742,808 - INT(7×(2024+1)/4) + INT(825/9) + 20.1 + 1721013.5 + 0.1708 = 742,808 - 3,543 + 91 + 20.1 + 1,721,013.5 + 0.1708 = 2,460,389.7708。该 JD 值用于计算太阳黄经达 0° 的时刻,即春分节气。

适用范围

适用于公历日期(格里历)与儒略日之间的精确转换。不适用于公元前 4713 年之前的日期(超出儒略日定义范围)。公式来源:美国天文历算局(USNO)《天文年鉴》标准算法。

原理图

选择年份/月份下拉框 / 翻页按钮计算日历网格蔡勒公式 + 闰年判断节气/节日数据查表渲染翻页日历7×6 网格 + 节气标注数据来源(本地)节气表 / 节日表(内置在 JS 中)无网络请求纯浏览器端计算数据不离开本机万年历翻页 · 工作流程
用户输入 本地计算/查表 输出结果 补充说明

开发者集成

3 种主流语言 · 复制即用

from datetime import datetime, timedelta
from typing import Optional
import math

# 计算指定年份的二十四节气近似日期(基于太阳黄经公式)
# 精度 ±1 天,适用于公历 1900-2100 年

def solar_term(year: int, term_index: int) -> Optional[datetime]:
    """
    term_index: 0=小寒, 1=大寒, ..., 23=冬至
    返回近似日期(UTC+8)
    """
    # 1900 年小寒的儒略日基准(近似)
    base_jd = 2415020.0
    # 每个节气约 15.2184 天
    jd = base_jd + (year - 1900) * 365.2422 + term_index * 15.2184
    # 儒略日转公历(简化,忽略闰秒)
    jd_int = int(jd + 0.5)
    a = jd_int + 32044
    b = (4 * a + 3) // 146097
    c = a - (146097 * b) // 4
    d = (4 * c + 3) // 1461
    e = c - (1461 * d) // 4
    m = (5 * e + 2) // 153
    day = e - (153 * m + 2) // 5 + 1
    month = m + 3 if m < 10 else m - 9
    year_out = 100 * b + d - 4800 + (month <= 2)
    try:
        return datetime(year_out, month, day, 12, 0, 0)
    except ValueError:
        return None

# 示例:打印 2025 年所有节气
terms = ["小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"]
for i, name in enumerate(terms):
    dt = solar_term(2025, i)
    if dt:
        print(f"{name}: {dt.strftime('%Y-%m-%d')}")
package main

import (
	"fmt"
	"time"
)

// 计算某年某月第一天是星期几(Zeller 公式)
// 用于生成月历布局
func firstWeekday(year, month int) time.Weekday {
	if month <= 2 {
		month += 12
		year--
	}
	c := year / 100
	y := year % 100
	w := (1 + (13*(month+1))/5 + y + y/4 + c/4 - 2*c) % 7
	// 转换为 Go 的 Sunday=0 格式
	return time.Weekday((w + 6) % 7)
}

func main() {
	year := 2025
	month := 2 // 二月
	daysInMonth := time.Date(year, time.Month(month+1), 0, 0, 0, 0, 0, time.UTC).Day()
	start := firstWeekday(year, month)

	fmt.Printf("%d年%d月\n", year, month)
	fmt.Println("日 一 二 三 四 五 六")
	// 打印前导空格
	for i := 0; i < int(start); i++ {
		fmt.Print("   ")
	}
	for d := 1; d <= daysInMonth; d++ {
		fmt.Printf("%2d ", d)
		if (int(start)+d)%7 == 0 {
			fmt.Println()
		}
	}
	fmt.Println()
}
// 判断公历节日(固定日期)与农历节日(近似)
// 用于前端日历标注

const FIXED_HOLIDAYS = {
  '01-01': '元旦',
  '05-01': '劳动节',
  '10-01': '国庆节',
};

// 农历节日近似日期(2025 年示例,实际需查表或调用 API)
const LUNAR_HOLIDAYS_2025 = {
  '2025-01-29': '春节',
  '2025-02-12': '元宵节',
  '2025-06-01': '端午节',
  '2025-10-06': '中秋节',
};

function getHolidays(dateStr) {
  // dateStr 格式 'YYYY-MM-DD'
  const monthDay = dateStr.slice(5); // 'MM-DD'
  const holidays = [];
  
  if (FIXED_HOLIDAYS[monthDay]) {
    holidays.push(FIXED_HOLIDAYS[monthDay]);
  }
  if (LUNAR_HOLIDAYS_2025[dateStr]) {
    holidays.push(LUNAR_HOLIDAYS_2025[dateStr]);
  }
  return holidays;
}

// 示例
console.log(getHolidays('2025-01-29')); // ['春节']
console.log(getHolidays('2025-05-01')); // ['劳动节']
console.log(getHolidays('2025-10-01')); // ['国庆节']
console.log(getHolidays('2025-10-06')); // ['中秋节']

常见问题

8 个高频疑问

这个万年历翻页怎么用?
在页面顶部选择一个起始年月,然后点击「开始翻页」按钮,日历会以翻页动画形式逐月展示。支持键盘左右方向键快速翻页,空格键暂停/继续自动翻页。鼠标悬停在日期上会显示该日对应的农历、节气、节日信息。
为什么显示的节气日期和我在别处查的不一样?
节气时间由太阳黄经精确到秒计算,不同工具可能采用不同算法或时区。本工具使用天文算法(VSOP87 行星理论)计算太阳位置,输出北京时间(UTC+8)。误差通常在 1 分钟以内,但个别年份因闰秒或计算精度差异,与某些老黄历网站可能有 1 天偏差。如果差距超过 1 天,建议核对是否选择了正确的年份和时区。
翻页动画很卡怎么办?
翻页动画是纯前端 CSS 3D 变换,对浏览器硬件加速有依赖。卡顿通常发生在:1)浏览器未开启硬件加速(Chrome 设置 → 系统 → 使用图形加速);2)同时打开大量标签页导致内存不足;3)老旧集成显卡。解决办法:关闭其他标签页,或在页面右上角设置里关闭「翻页动画」改为「瞬间切换」模式。
能查看未来 100 年的日历吗?
支持的年份范围为 1901 年至 2100 年。超出这个范围,农历闰月计算和节气公式精度会显著下降,部分年份可能出现日期错位。如果确实需要查看 2100 年以后的日期,建议使用专业天文软件。
工具会保存我的浏览记录吗?
不保存任何个人信息。所有日历数据(农历、节气、节日)都在浏览器本地生成,不向服务器发送任何请求。关闭页面后,浏览器不会留下任何与该工具相关的缓存或 Cookie。可以断网后使用,功能完全正常。
为什么有些节日显示灰色,有些显示红色?
红色表示国家法定节假日(如春节、国庆),灰色表示传统节日或纪念日(如七夕、中元节)。鼠标悬停灰色节日会显示节日来源说明。如果某个节日颜色与预期不符,可能是该节日在不同地区有不同认定标准,工具以国务院办公厅发布的《全国年节及纪念日放假办法》为准。
和手机上的日历 App 比,这个翻页日历有什么不同?
手机日历 App 通常以列表或网格形式展示,侧重日程管理与提醒功能。本工具侧重「时间可视化浏览」——通过翻页动画让用户直观感受月份更替和节气分布,适合在 PC 大屏上做年度规划、教学演示或纯粹浏览。不支持添加日程、设置提醒,也不推送通知。
为什么某些日期同时显示两个节气?
正常情况下每个日期最多显示一个节气。如果看到同一日期出现两个节气名称,说明该日恰好是某个节气的开始时刻(精确到秒),同时另一个节气的结束时刻也在同一天。这种情况只发生在极少数年份(约每 5-10 年一次),属于天文历法中的正常现象。
选择 打开 +新窗口 esc关闭