<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<title>六甲雨晴占</title>
<style>
/* 明暗主题变量 */
:root{
    --bg:#0f1118;
    --card:#1a1e29;
    --text:#e2e8f0;
    --text-soft:#94a3b8;
    --text-dim:#64748b;
    --border:#334155;
    --input-bg:#0f1118;
    --accent:#ffd770;
    --accent-active:#ffc845;
    --card-shadow:0 4px 12px rgba(0,0,0,0.15);
}
@media (prefers-color-scheme: light){
    :root{
        --bg:#f7f8fa;
        --card:#ffffff;
        --text:#111827;
        --text-soft:#4b5563;
        --text-dim:#6b7280;
        --border:#d1d5db;
        --input-bg:#ffffff;
        --accent:#e6a800;
        --accent-active:#cc9400;
        --card-shadow:0 4px 12px rgba(0,0,0,0.15);
    }
}
*{margin:0;padding:0;box-sizing:border-box;font-family:"PingFang SC",system-ui,-apple-system,sans-serif;}
body{background:var(--bg);color:var(--text);padding:20px;min-height:100vh;transition:background 0.3s,color 0.3s;}
.container{max-width:480px;margin:0 auto;}
.title{text-align:center;font-size:24px;margin-bottom:14px;color:var(--accent);font-weight:700;letter-spacing:2px;transition:color 0.3s;}
.author{text-align:center;font-size:15px;color:var(--text-soft);margin-bottom:36px;cursor:pointer;user-select:none;transition:color 0.2s;}
.author:active{color:var(--accent);}
.time-box,.search-wrap{
    background:var(--card);
    border-radius:16px;
    padding:20px;
    margin-bottom:36px;
    box-shadow:var(--card-shadow);
    transition:background 0.3s,box-shadow 0.3s;
}
.time-label{font-size:13px;color:var(--text-dim);margin-bottom:6px;text-align:center;}
.time-text{font-size:17px;color:var(--text);line-height:1.7;text-align:center;font-weight:500;transition:color 0.3s;}
.time-row{margin-bottom:18px;}
.time-row:last-child{margin-bottom:0;}
.search-tip{font-size:14px;color:var(--text-soft);margin-bottom:14px;text-align:center;line-height:1.6;transition:color 0.3s;}
.input-row{display:flex;gap:10px;margin-bottom:14px;}
#ganzhiInput{flex:1;padding:14px 16px;background:var(--input-bg);border:1px solid var(--border);border-radius:12px;color:var(--text);font-size:16px;outline:none;transition:border 0.2s,background 0.3s,color 0.3s;}
#ganzhiInput:focus{border-color:var(--accent);}
#queryBtn{padding:0 22px;background:var(--accent);color:var(--bg);font-weight:600;border:none;border-radius:12px;font-size:16px;cursor:pointer;transition:background 0.2s;height:52px;min-width:72px;}
#queryBtn:active{background:var(--accent-active);}
.result-box{background:var(--input-bg);border-radius:12px;padding:16px;min-height:130px;white-space:pre-line;line-height:1.8;color:var(--text);font-size:16px;border:1px solid var(--border);transition:background 0.3s,color 0.3s,border 0.3s;}
/* 底部每日占候提醒 */
.daily-tip{
    text-align:center;
    margin-top:40px;
    padding:16px 12px;
    font-size:16px;
    color:var(--accent);
    letter-spacing:1px;
    line-height:1.7;
}
/* 弹窗提示样式 */
.toast-box{
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    background: rgba(0,0,0,0.75);
    color: #fff;
    padding: 14px 24px;
    border-radius: 10px;
    font-size: 16px;
    z-index: 9999;
    opacity: 0;
    pointer-events: none;
    transition: opacity 3s ease-out;
}
.toast-box.show{
    opacity: 1;
    pointer-events: auto;
}
</style>
</head>
<body>
<div class="container">
    <h1 class="title">六甲雨晴占</h1>
    <div class="author" id="authorBox">联系玄学顾问</div>
    <div class="time-box">
        <div class="time-row">
            <div class="time-label">公历时间</div>
            <div class="time-text" id="nowTime">加载中...</div>
        </div>
        <div class="time-row">
            <div class="time-label">农历时辰</div>
            <div class="time-text" id="lunarTime">计算中...</div>
        </div>
        <div class="time-row">
            <div class="time-label">当前节气</div>
            <div class="time-text" id="jieqiText">计算中...</div>
        </div>
    </div>
    <div class="search-wrap">
        <div class="search-tip">请输入目标日干支</div>
        <div class="input-row">
            <input type="text" id="ganzhiInput" placeholder="愿年年岁岁风调雨顺">
            <button id="queryBtn">推演</button>
        </div>
        <div class="result-box" id="resultBox">输入日干支即可推演雨晴</div>
    </div>

    <!-- 底部每日一句天象提醒 -->
    <div class="daily-tip" id="dailyTip"></div>
</div>
<!-- 弹窗提示 -->
<div class="toast-box" id="toastTip"></div>
<script>
// ====================== 每日天象占候语录库 ======================
const dailySentenceList = [
    "苍云气入北斗，多大风 —— 十七.",
    "赤云掩北斗，明日大热杀人 —— 十七.",
    "天下无云，晴 —— 十七.",
    "北斗上中下独有云，后五日内有大雨 —— 十七.",
    "黄云蔽北斗，明日雨 —— 十七.",
    "白云掩北斗，不过三日雨 —— 十七.",
    "青云掩北斗，五日雨/立雨 —— 十七."
];
// 根据日期生成固定当日索引，一天切换一条，跨日自动更换
function getDailyTip() {
    const today = new Date();
    const dateSeed = today.getFullYear() * 10000 + (today.getMonth() + 1) * 100 + today.getDate();
    const index = dateSeed % dailySentenceList.length;
    return dailySentenceList[index];
}
document.getElementById("dailyTip").innerText = getDailyTip();

// ====================== 公历2026-01-01 ~ 2027-02-15 完整农历对照表 ======================
const solar2Lunar2026_2027 = [
["2026-01-01","乙巳年腊月十四"],["2026-01-02","乙巳年腊月十五"],["2026-01-03","乙巳年腊月十六"],["2026-01-04","乙巳年腊月十七"],["2026-01-05","乙巳年腊月十八"],
["2026-01-06","乙巳年腊月十九"],["2026-01-07","乙巳年腊月二十"],["2026-01-08","乙巳年腊月廿一"],["2026-01-09","乙巳年腊月廿二"],["2026-01-10","乙巳年腊月廿三"],
["2026-01-11","乙巳年腊月廿四"],["2026-01-12","乙巳年腊月廿五"],["2026-01-13","乙巳年腊月廿六"],["2026-01-14","乙巳年腊月廿七"],["2026-01-15","乙巳年腊月廿八"],
["2026-01-16","乙巳年腊月廿九"],["2026-01-17","丙午年正月初一"],["2026-01-18","丙午年正月初二"],["2026-01-19","丙午年正月初三"],["2026-01-20","丙午年正月初四"],
["2026-01-21","丙午年正月初五"],["2026-01-22","丙午年正月初六"],["2026-01-23","丙午年正月初七"],["2026-01-24","丙午年正月初八"],["2026-01-25","丙午年正月初九"],
["2026-01-26","丙午年正月初十"],["2026-01-27","丙午年正月十一"],["2026-01-28","丙午年正月十二"],["2026-01-29","丙午年正月十三"],["2026-01-30","丙午年正月十四"],["2026-01-31","丙午年正月十五"],
["2026-02-01","丙午年正月十六"],["2026-02-02","丙午年正月十七"],["2026-02-03","丙午年正月十八"],["2026-02-04","丙午年正月十九"],["2026-02-05","丙午年正月二十"],
["2026-02-06","丙午年正月廿一"],["2026-02-07","丙午年正月廿二"],["2026-02-08","丙午年正月廿三"],["2026-02-09","丙午年正月廿四"],["2026-02-10","丙午年正月廿五"],
["2026-02-11","丙午年正月廿六"],["2026-02-12","丙午年正月廿七"],["2026-02-13","丙午年正月廿八"],["2026-02-14","丙午年正月廿九"],["2026-02-15","丙午年正月三十"],
["2026-02-16","丙午年二月初一"],["2026-02-17","丙午年二月初二"],["2026-02-18","丙午年二月初三"],["2026-02-19","丙午年二月初四"],["2026-02-20","丙午年二月初五"],
["2026-02-21","丙午年二月初六"],["2026-02-22","丙午年二月初七"],["2026-02-23","丙午年二月初八"],["2026-02-24","丙午年二月初九"],["2026-02-25","丙午年二月初十"],
["2026-02-26","丙午年二月十一"],["2026-02-27","丙午年二月十二"],["2026-02-28","丙午年二月十三"],
["2026-03-01","丙午年二月十四"],["2026-03-02","丙午年二月十五"],["2026-03-03","丙午年二月十六"],["2026-03-04","丙午年二月十七"],["2026-03-05","丙午年二月十八"],
["2026-03-06","丙午年二月十九"],["2026-03-07","丙午年二月二十"],["2026-03-08","丙午年二月廿一"],["2026-03-09","丙午年二月廿二"],["2026-03-10","丙午年二月廿三"],
["2026-03-11","丙午年二月廿四"],["2026-03-12","丙午年二月廿五"],["2026-03-13","丙午年二月廿六"],["2026-03-14","丙午年二月廿七"],["2026-03-15","丙午年二月廿八"],
["2026-03-16","丙午年二月廿九"],["2026-03-17","丙午年三月初一"],["2026-03-18","丙午年三月初二"],["2026-03-19","丙午年三月初三"],["2026-03-20","丙午年三月初四"],
["2026-03-21","丙午年三月初五"],["2026-03-22","丙午年三月初六"],["2026-03-23","丙午年三月初七"],["2026-03-24","丙午年三月初八"],["2026-03-25","丙午年三月初九"],
["2026-03-26","丙午年三月初十"],["2026-03-27","丙午年三月十一"],["2026-03-28","丙午年三月十二"],["2026-03-29","丙午年三月十三"],["2026-03-30","丙午年三月十四"],["2026-03-31","丙午年三月十五"],
["2026-04-01","丙午年三月十六"],["2026-04-02","丙午年三月十七"],["2026-04-03","丙午年三月十八"],["2026-04-04","丙午年三月十九"],["2026-04-05","丙午年三月二十"],
["2026-04-06","丙午年三月廿一"],["2026-04-07","丙午年三月廿二"],["2026-04-08","丙午年三月廿三"],["2026-04-09","丙午年三月廿四"],["2026-04-10","丙午年三月廿五"],
["2026-04-11","丙午年三月廿六"],["2026-04-12","丙午年三月廿七"],["2026-04-13","丙午年三月廿八"],["2026-04-14","丙午年三月廿九"],["2026-04-15","丙午年三月三十"],
["2026-04-16","丙午年四月初一"],["2026-04-17","丙午年四月初二"],["2026-04-18","丙午年四月初三"],["2026-04-19","丙午年四月初四"],["2026-04-20","丙午年四月初五"],
["2026-04-21","丙午年四月初六"],["2026-04-22","丙午年四月初七"],["2026-04-23","丙午年四月初八"],["2026-04-24","丙午年四月初九"],["2026-04-25","丙午年四月初十"],
["2026-04-26","丙午年四月十一"],["2026-04-27","丙午年四月十二"],["2026-04-28","丙午年四月十三"],["2026-04-29","丙午年四月十四"],["2026-04-30","丙午年四月十五"],
["2026-05-01","丙午年四月十六"],["2026-05-02","丙午年四月十七"],["2026-05-03","丙午年四月十八"],["2026-05-04","丙午年四月十九"],["2026-05-05","丙午年四月二十"],
["2026-05-06","丙午年四月廿一"],["2026-05-07","丙午年四月廿二"],["2026-05-08","丙午年四月廿三"],["2026-05-09","丙午年四月廿四"],["2026-05-10","丙午年四月廿五"],
["2026-05-11","丙午年四月廿六"],["2026-05-12","丙午年四月廿七"],["2026-05-13","丙午年四月廿八"],["2026-05-14","丙午年四月廿九"],["2026-05-15","丙午年五月初一"],
["2026-05-16","丙午年五月初二"],["2026-05-17","丙午年五月初三"],["2026-05-18","丙午年五月初四"],["2026-05-19","丙午年五月初五"],["2026-05-20","丙午年五月初六"],
["2026-05-21","丙午年五月初七"],["2026-05-22","丙午年五月初八"],["2026-05-23","丙午年五月初九"],["2026-05-24","丙午年五月初十"],["2026-05-25","丙午年五月十一"],
["2026-05-26","丙午年五月十二"],["2026-05-27","丙午年五月十三"],["2026-05-28","丙午年五月十四"],["2026-05-29","丙午年五月十五"],["2026-05-30","丙午年五月十六"],["2026-05-31","丙午年五月十七"],
["2026-06-01","丙午年五月十八"],["2026-06-02","丙午年五月十九"],["2026-06-03","丙午年五月二十"],["2026-06-04","丙午年五月廿一"],["2026-06-05","丙午年五月廿二"],
["2026-06-06","丙午年五月廿三"],["2026-06-07","丙午年五月廿四"],["2026-06-08","丙午年五月廿五"],["2026-06-09","丙午年五月廿六"],["2026-06-10","丙午年五月廿七"],
["2026-06-11","丙午年五月廿八"],["2026-06-12","丙午年五月廿九"],["2026-06-13","丙午年六月初一"],["2026-06-14","丙午年六月初二"],["2026-06-15","丙午年六月初三"],
["2026-06-16","丙午年六月初四"],["2026-06-17","丙午年六月初五"],["2026-06-18","丙午年六月初六"],["2026-06-19","丙午年六月初七"],["2026-06-20","丙午年六月初八"],
["2026-06-21","丙午年六月初九"],["2026-06-22","丙午年六月初十"],["2026-06-23","丙午年六月十一"],["2026-06-24","丙午年六月十二"],["2026-06-25","丙午年六月十三"],
["2026-06-26","丙午年六月十四"],["2026-06-27","丙午年六月十五"],["2026-06-28","丙午年六月十六"],["2026-06-29","丙午年六月十七"],["2026-06-30","丙午年六月十八"],
["2026-07-01","丙午年六月十九"],["2026-07-02","丙午年六月二十"],["2026-07-03","丙午年六月廿一"],["2026-07-04","丙午年六月廿二"],["2026-07-05","丙午年六月廿三"],
["2026-07-06","丙午年六月廿四"],["2026-07-07","丙午年六月廿五"],["2026-07-08","丙午年六月廿六"],["2026-07-09","丙午年六月廿七"],["2026-07-10","丙午年六月廿八"],
["2026-07-11","丙午年六月廿九"],["2026-07-12","丙午年七月初一"],["2026-07-13","丙午年七月初二"],["2026-07-14","丙午年七月初三"],["2026-07-15","丙午年七月初四"],
["2026-07-16","丙午年六月初三"],["2026-07-17","丙午年六月初四"],["2026-07-18","丙午年六月初五"],["2026-07-19","丙午年六月初六"],["2026-07-20","丙午年六月初七"],
["2026-07-21","丙午年六月初八"],["2026-07-22","丙午年六月初九"],["2026-07-23","丙午年六月初十"],["2026-07-24","丙午年六月十一"],["2026-07-25","丙午年六月十二"],
["2026-07-26","丙午年六月十三"],["2026-07-27","丙午年六月十四"],["2026-07-28","丙午年六月十五"],["2026-07-29","丙午年六月十六"],["2026-07-30","丙午年六月十七"],["2026-07-31","丙午年六月十八"],
["2026-08-01","丙午年六月十九"],["2026-08-02","丙午年六月二十"],["2026-08-03","丙午年六月廿一"],["2026-08-04","丙午年六月廿二"],["2026-08-05","丙午年六月廿三"],
["2026-08-06","丙午年六月廿四"],["2026-08-07","丙午年六月廿五"],["2026-08-08","丙午年六月廿六"],["2026-08-09","丙午年六月廿七"],["2026-08-10","丙午年六月廿八"],
["2026-08-11","丙午年六月廿九"],["2026-08-12","丙午年七月初一"],["2026-08-13","丙午年七月初二"],["2026-08-14","丙午年七月初三"],["2026-08-15","丙午年七月初四"],
["2026-08-16","丙午年七月初五"],["2026-08-17","丙午年七月初六"],["2026-08-18","丙午年七月初七"],["2026-08-19","丙午年七月初八"],["2026-08-20","丙午年七月初九"],
["2026-08-21","丙午年七月初十"],["2026-08-22","丙午年七月十一"],["2026-08-23","丙午年七月十二"],["2026-08-24","丙午年七月十三"],["2026-08-25","丙午年七月十四"],
["2026-08-26","丙午年七月十五"],["2026-08-27","丙午年七月十六"],["2026-08-28","丙午年七月十七"],["2026-08-29","丙午年七月十八"],["2026-08-30","丙午年七月十九"],["2026-08-31","丙午年七月二十"],
["2026-09-01","丙午年七月廿一"],["2026-09-02","丙午年七月廿二"],["2026-09-03","丙午年七月廿三"],["2026-09-04","丙午年七月廿四"],["2026-09-05","丙午年七月廿五"],
["2026-09-06","丙午年七月廿六"],["2026-09-07","丙午年七月廿七"],["2026-09-08","丙午年七月廿八"],["2026-09-09","丙午年七月廿九"],["2026-09-10","丙午年八月初一"],
["2026-09-11","丙午年八月初二"],["2026-09-12","丙午年八月初三"],["2026-09-13","丙午年八月初四"],["2026-09-14","丙午年八月初五"],["2026-09-15","丙午年八月初六"],
["2026-09-16","丙午年八月初七"],["2026-09-17","丙午年八月初八"],["2026-09-18","丙午年八月初九"],["2026-09-19","丙午年八月初十"],["2026-09-20","丙午年八月十一"],
["2026-09-21","丙午年八月十二"],["2026-09-22","丙午年八月十三"],["2026-09-23","丙午年八月十四"],["2026-09-24","丙午年八月十五"],["2026-09-25","丙午年八月十六"],
["2026-09-26","丙午年八月十七"],["2026-09-27","丙午年八月十八"],["2026-09-28","丙午年八月十九"],["2026-09-29","丙午年八月二十"],["2026-09-30","丙午年八月廿一"],
["2026-10-01","丙午年八月廿二"],["2026-10-02","丙午年八月廿三"],["2026-10-03","丙午年八月廿四"],["2026-10-04","丙午年八月廿五"],["2026-10-05","丙午年八月廿六"],
["2026-10-06","丙午年八月廿七"],["2026-10-07","丙午年八月廿八"],["2026-10-08","丙午年八月廿九"],["2026-10-09","丙午年八月三十"],["2026-10-10","丙午年九月初一"],
["2026-10-11","丙午年九月初二"],["2026-10-12","丙午年九月初三"],["2026-10-13","丙午年九月初四"],["2026-10-14","丙午年九月初五"],["2026-10-15","丙午年九月初六"],
["2026-10-16","丙午年九月初七"],["2026-10-17","丙午年九月初八"],["2026-10-18","丙午年九月初九"],["2026-10-19","丙午年九月初十"],["2026-10-20","丙午年九月十一"],
["2026-10-21","丙午年九月十二"],["2026-10-22","丙午年九月十三"],["2026-10-23","丙午年九月十四"],["2026-10-24","丙午年九月十五"],["2026-10-25","丙午年九月十六"],
["2026-10-26","丙午年九月十七"],["2026-10-27","丙午年九月十八"],["2026-10-28","丙午年九月十九"],["2026-10-29","丙午年九月二十"],["2026-10-30","丙午年九月廿一"],["2026-10-31","丙午年九月廿二"],
["2026-11-01","丙午年九月廿三"],["2026-11-02","丙午年九月廿四"],["2026-11-03","丙午年九月廿五"],["2026-11-04","丙午年九月廿六"],["2026-11-05","丙午年九月廿七"],
["2026-11-06","丙午年九月廿八"],["2026-11-07","丙午年九月廿九"],["2026-11-08","丙午年九月三十"],["2026-11-09","丙午年十月初一"],["2026-11-10","丙午年十月初二"],
["2026-11-11","丙午年十月初三"],["2026-11-12","丙午年十月初四"],["2026-11-13","丙午年十月初五"],["2026-11-14","丙午年十月初六"],["2026-11-15","丙午年十月初七"],
["2026-11-16","丙午年十月初八"],["2026-11-17","丙午年十月初九"],["2026-11-18","丙午年十月初十"],["2026-11-19","丙午年十月十一"],["2026-11-20","丙午年十月十二"],
["2026-11-21","丙午年十月十三"],["2026-11-22","丙午年十月十四"],["2026-11-23","丙午年十月十五"],["2026-11-24","丙午年十月十六"],["2026-11-25","丙午年十月十七"],
["2026-11-26","丙午年十月十八"],["2026-11-27","丙午年十月十九"],["2026-11-28","丙午年十月二十"],["2026-11-29","丙午年十月廿一"],["2026-11-30","丙午年十月廿二"],
["2026-12-01","丙午年十月廿三"],["2026-12-02","丙午年十月廿四"],["2026-12-03","丙午年十月廿五"],["2026-12-04","丙午年十月廿六"],["2026-12-05","丙午年十月廿七"],
["2026-12-06","丙午年十月廿八"],["2026-12-07","丙午年十月廿九"],["2026-12-08","丙午年十月三十"],["2026-12-09","丙午年冬月初一"],["2026-12-10","丙午年冬月初二"],
["2026-12-11","丙午年冬月初三"],["2026-12-12","丙午年冬月初四"],["2026-12-13","丙午年冬月初五"],["2026-12-14","丙午年冬月初六"],["2026-12-15","丙午年冬月初七"],
["2026-12-16","丙午年冬月初八"],["2026-12-17","丙午年冬月初九"],["2026-12-18","丙午年冬月初十"],["2026-12-19","丙午年冬月十一"],["2026-12-20","丙午年冬月十二"],
["2026-12-21","丙午年冬月十三"],["2026-12-22","丙午年冬月十四"],["2026-12-23","丙午年冬月十五"],["2026-12-24","丙午年冬月十六"],["2026-12-25","丙午年冬月十七"],
["2026-12-26","丙午年冬月十八"],["2026-12-27","丙午年冬月十九"],["2026-12-28","丙午年冬月二十"],["2026-12-29","丙午年冬月廿一"],["2026-12-30","丙午年冬月廿二"],
["2026-12-31","丙午年冬月廿三"],
["2027-01-01","丙午年冬月廿四"],["2027-01-02","丙午年冬月廿五"],["2027-01-03","丙午年冬月廿六"],["2027-01-04","丙午年冬月廿七"],["2027-01-05","丙午年冬月廿八"],
["2027-01-06","丙午年冬月廿九"],["2027-01-07","丙午年冬月三十"],["2027-01-08","丙午年腊月初一"],["2027-01-09","丙午年腊月初二"],["2027-01-10","丙午年腊月初三"],
["2027-01-11","丙午年腊月初四"],["2027-01-12","丙午年腊月初五"],["2027-01-13","丙午年腊月初六"],["2027-01-14","丙午年腊月初七"],["2027-01-15","丙午年腊月初八"],
["2027-01-16","丙午年腊月初九"],["2027-01-17","丙午年腊月初十"],["2027-01-18","丙午年腊月十一"],["2027-01-19","丙午年腊月十二"],["2027-01-20","丙午年腊月十三"],
["2027-01-21","丙午年腊月十四"],["2027-01-22","丙午年腊月十五"],["2027-01-23","丙午年腊月十六"],["2027-01-24","丙午年腊月十七"],["2027-01-25","丙午年腊月十八"],
["2027-01-26","丙午年腊月十九"],["2027-01-27","丙午年腊月二十"],["2027-01-28","丙午年腊月廿一"],["2027-01-29","丙午年腊月廿二"],["2027-01-30","丙午年腊月廿三"],["2027-01-31","丙午年腊月廿四"],
["2027-02-01","丙午年腊月廿五"],["2027-02-02","丙午年腊月廿六"],["2027-02-03","丙午年腊月廿七"],["2027-02-04","丙午年腊月廿八"],["2027-02-05","丙午年腊月廿九"],["2027-02-06","丁未年正月初一"],
["2027-02-07","丁未年正月初二"],["2027-02-08","丁未年正月初三"],["2027-02-09","丁未年正月初四"],["2027-02-10","丁未年正月初五"],["2027-02-11","丁未年正月初六"],["2027-02-12","丁未年正月初七"],
["2027-02-13","丁未年正月初八"],["2027-02-14","丁未年正月初九"],["2027-02-15","丁未年正月初十"],["2027-02-15","丁未年正月初十"],["2027-02-16","丁未年正月十一"],
["2027-02-17","丁未年正月十二"],["2027-02-18","丁未年正月十三"],["2027-02-19","丁未年正月十四"],["2027-02-20","丁未年正月十五"],["2027-02-21","丁未年正月十六"],
["2027-02-22","丁未年正月十七"],["2027-02-23","丁未年正月十八"],["2027-02-24","丁未年正月十九"],["2027-02-25","丁未年正月二十"],["2027-02-26","丁未年正月廿一"],
["2027-02-27","丁未年正月廿二"],["2027-02-28","丁未年正月廿三"],["2027-03-01","丁未年正月廿四"],["2027-03-02","丁未年正月廿五"],["2027-03-03","丁未年正月廿六"],
["2027-03-04","丁未年正月廿七"],["2027-03-05","丁未年正月廿八"],["2027-03-06","丁未年正月廿九"],["2027-03-07","丁未年二月初一"],["2027-03-08","丁未年二月初二"],
["2027-03-09","丁未年二月初三"],["2027-03-10","丁未年二月初四"],["2027-03-11","丁未年二月初五"],["2027-03-12","丁未年二月初六"],["2027-03-13","丁未年二月初七"],
["2027-03-14","丁未年二月初八"],["2027-03-15","丁未年二月初九"],["2027-03-16","丁未年二月初十"],["2027-03-17","丁未年二月十一"],["2027-03-18","丁未年二月十二"],["2027-03-19","丁未年二月十三"],
["2027-03-20","丁未年二月十四"],["2027-03-21","丁未年二月十五"],["2027-03-22","丁未年二月十六"],["2027-03-23","丁未年二月十七"],["2027-03-24","丁未年二月十八"],
["2027-03-25","丁未年二月十九"],["2027-03-26","丁未年二月二十"],["2027-03-27","丁未年二月廿一"],["2027-03-28","丁未年二月廿二"],["2027-03-29","丁未年二月廿三"],["2027-03-30","丁未年二月廿四"],
["2027-03-31","丁未年二月廿五"],["2027-04-01","丁未年二月廿六"],["2027-04-02","丁未年二月廿七"],["2027-04-03","丁未年二月廿八"],["2027-04-04","丁未年二月廿九"],["2027-04-05","丁未年三月初一"],
["2027-04-06","丁未年三月初二"],["2027-04-07","丁未年三月初三"],["2027-04-08","丁未年三月初四"],["2027-04-09","丁未年三月初五"],["2027-04-10","丁未年三月初六"],
["2027-04-11","丁未年三月初七"],["2027-04-12","丁未年三月初八"],["2027-04-13","丁未年三月初九"],["2027-04-14","丁未年三月初十"],["2027-04-15","丁未年三月十一"],
["2027-04-16","丁未年三月十二"],["2027-04-17","丁未年三月十三"],["2027-04-18","丁未年三月十四"],["2027-04-19","丁未年三月十五"],["2027-04-20","丁未年三月十六"],
["2027-04-21","丁未年三月十七"],["2027-04-22","丁未年三月十八"],["2027-04-23","丁未年三月十九"],["2027-04-24","丁未年三月二十"],["2027-04-25","丁未年三月廿一"],
["2027-04-26","丁未年三月廿二"],["2027-04-27","丁未年三月廿三"],["2027-04-28","丁未年三月廿四"],["2027-04-29","丁未年三月廿五"],["2027-04-30","丁未年三月廿六"],
["2027-05-01","丁未年三月廿七"],["2027-05-02","丁未年三月廿八"],["2027-05-03","丁未年三月廿九"],["2027-05-04","丁未年三月三十"],["2027-05-05","丁未年四月初一"],
["2027-05-06","丁未年四月初二"],["2027-05-07","丁未年四月初三"],["2027-05-08","丁未年四月初四"],["2027-05-09","丁未年四月初五"],["2027-05-10","丁未年四月初六"],
["2027-05-11","丁未年四月初七"],["2027-05-12","丁未年四月初八"],["2027-05-13","丁未年四月初九"],["2027-05-14","丁未年四月初十"],["2027-05-15","丁未年四月十一"],
["2027-05-16","丁未年四月十二"],["2027-05-17","丁未年四月十三"],["2027-05-18","丁未年四月十四"],["2027-05-19","丁未年四月十五"],["2027-05-20","丁未年四月十六"],
["2027-05-21","丁未年四月十七"],["2027-05-22","丁未年四月十八"],["2027-05-23","丁未年四月十九"],["2027-05-24","丁未年四月二十"],["2027-05-25","丁未年四月廿一"],
["2027-05-26","丁未年四月廿二"],["2027-05-27","丁未年四月廿三"],["2027-05-28","丁未年四月廿四"],["2027-05-29","丁未年四月廿五"],["2027-05-30","丁未年四月廿六"],
["2027-05-31","丁未年四月廿七"],["2027-06-01","丁未年四月廿八"],["2027-06-02","丁未年四月廿九"],["2027-06-03","丁未年五月初一"],["2027-06-04","丁未年五月初二"],
["2027-06-05","丁未年五月初三"],["2027-06-06","丁未年五月初四"],["2027-06-07","丁未年五月初五"],["2027-06-08","丁未年五月初六"],["2027-06-09","丁未年五月初七"],
["2027-06-10","丁未年五月初八"],["2027-06-11","丁未年五月初九"],["2027-06-12","丁未年五月初十"],["2027-06-13","丁未年五月十一"],["2027-06-14","丁未年五月十二"],
["2027-06-15","丁未年五月十三"],["2027-06-16","丁未年五月十四"],["2027-06-17","丁未年五月十五"],["2027-06-18","丁未年五月十六"],["2027-06-19","丁未年五月十七"],
["2027-06-20","丁未年五月十八"],["2027-06-21","丁未年五月十九"],["2027-06-22","丁未年五月二十"],["2027-06-23","丁未年五月廿一"],["2027-06-24","丁未年五月廿二"],
["2027-06-25","丁未年五月廿三"],["2027-06-26","丁未年五月廿四"],["2027-06-27","丁未年五月廿五"],["2027-06-28","丁未年五月廿六"],["2027-06-29","丁未年五月廿七"],
["2027-06-30","丁未年五月廿八"],["2027-07-01","丁未年五月廿九"],["2027-07-02","丁未年六月初一"],["2027-07-03","丁未年六月初二"],["2027-07-04","丁未年六月初三"],
["2027-07-05","丁未年六月初四"],["2027-07-06","丁未年六月初五"],["2027-07-07","丁未年六月初六"],["2027-07-08","丁未年六月初七"],["2027-07-09","丁未年六月初八"],
["2027-07-10","丁未年六月初九"],["2027-07-11","丁未年六月初十"],["2027-07-12","丁未年六月十一"],["2027-07-13","丁未年六月十二"],["2027-07-14","丁未年六月十三"],
["2027-07-15","丁未年六月十四"],["2027-07-16","丁未年六月十五"],["2027-07-17","丁未年六月十六"],["2027-07-18","丁未年六月十七"],["2027-07-19","丁未年六月十八"],
["2027-07-20","丁未年六月十九"],["2027-07-21","丁未年六月二十"],["2027-07-22","丁未年六月廿一"],["2027-07-23","丁未年六月廿二"],["2027-07-24","丁未年六月廿三"],
["2027-07-25","丁未年六月廿四"],["2027-07-26","丁未年六月廿五"],["2027-07-27","丁未年六月廿六"],["2027-07-28","丁未年六月廿七"],["2027-07-29","丁未年六月廿八"],
["2027-07-30","丁未年六月廿九"],["2027-07-31","丁未年七月初一"],["2027-08-01","丁未年七月初二"],["2027-08-02","丁未年七月初三"],["2027-08-03","丁未年七月初四"],
["2027-08-04","丁未年七月初五"],["2027-08-05","丁未年七月初六"],["2027-08-06","丁未年七月初七"],["2027-08-07","丁未年七月初八"],["2027-08-08","丁未年七月初九"],
["2027-08-09","丁未年七月初十"],["2027-08-10","丁未年七月十一"],["2027-08-11","丁未年七月十二"],["2027-08-12","丁未年七月十三"],["2027-08-13","丁未年七月十四"],
["2027-08-14","丁未年七月十五"],["2027-08-15","丁未年七月十六"],["2027-08-16","丁未年七月十七"],["2027-08-17","丁未年七月十八"],["2027-08-18","丁未年七月十九"],
["2027-08-19","丁未年七月二十"],["2027-08-20","丁未年七月廿一"],["2027-08-21","丁未年七月廿二"],["2027-08-22","丁未年七月廿三"],["2027-08-23","丁未年七月廿四"],
["2027-08-24","丁未年七月廿五"],["2027-08-25","丁未年七月廿六"],["2027-08-26","丁未年七月廿七"],["2027-08-27","丁未年七月廿八"],["2027-08-28","丁未年七月廿九"],
["2027-08-29","丁未年七月三十"],["2027-08-30","丁未年八月初一"],["2027-08-31","丁未年八月初二"],["2027-09-01","丁未年八月初三"],["2027-09-02","丁未年八月初四"],
["2027-09-03","丁未年八月初五"],["2027-09-04","丁未年八月初六"],["2027-09-05","丁未年八月初七"],["2027-09-06","丁未年八月初八"],["2027-09-07","丁未年八月初九"],
["2027-09-08","丁未年八月初十"],["2027-09-09","丁未年八月十一"],["2027-09-10","丁未年八月十二"],["2027-09-11","丁未年八月十三"],["2027-09-12","丁未年八月十四"],
["2027-09-13","丁未年八月十五"],["2027-09-14","丁未年八月十六"],["2027-09-15","丁未年八月十七"],["2027-09-16","丁未年八月十八"],["2027-09-17","丁未年八月十九"],
["2027-09-18","丁未年八月二十"],["2027-09-19","丁未年八月廿一"],["2027-09-20","丁未年八月廿二"],["2027-09-21","丁未年八月廿三"],["2027-09-22","丁未年八月廿四"],
["2027-09-23","丁未年八月廿五"],["2027-09-24","丁未年八月廿六"],["2027-09-25","丁未年八月廿七"],["2027-09-26","丁未年八月廿八"],["2027-09-27","丁未年八月廿九"],
["2027-09-28","丁未年八月三十"],["2027-09-29","丁未年九月初一"],["2027-09-30","丁未年九月初二"],["2027-10-01","丁未年九月初三"],["2027-10-02","丁未年九月初四"],
["2027-10-03","丁未年九月初五"],["2027-10-04","丁未年九月初六"],["2027-10-05","丁未年九月初七"],["2027-10-06","丁未年九月初八"],["2027-10-07","丁未年九月初九"],
["2027-10-08","丁未年九月初十"],["2027-10-09","丁未年九月十一"],["2027-10-10","丁未年九月十二"],["2027-10-11","丁未年九月十三"],["2027-10-12","丁未年九月十四"],
["2027-10-13","丁未年九月十五"],["2027-10-14","丁未年九月十六"],["2027-10-15","丁未年九月十七"],["2027-10-16","丁未年九月十八"],["2027-10-17","丁未年九月十九"],
["2027-10-18","丁未年九月二十"],["2027-10-19","丁未年九月廿一"],["2027-10-20","丁未年九月廿二"],["2027-10-21","丁未年九月廿三"],["2027-10-22","丁未年九月廿四"],
["2027-10-23","丁未年九月廿五"],["2027-10-24","丁未年九月廿六"],["2027-10-25","丁未年九月廿七"],["2027-10-26","丁未年九月廿八"],["2027-10-27","丁未年九月廿九"],
["2027-10-28","丁未年十月初一"],["2027-10-29","丁未年十月初二"],["2027-10-30","丁未年十月初三"],["2027-10-31","丁未年十月初四"],["2027-11-01","丁未年十月初五"],
["2027-11-02","丁未年十月初六"],["2027-11-03","丁未年十月初七"],["2027-11-04","丁未年十月初八"],["2027-11-05","丁未年十月初九"],["2027-11-06","丁未年十月初十"],
["2027-11-07","丁未年十月十一"],["2027-11-08","丁未年十月十二"],["2027-11-09","丁未年十月十三"],["2027-11-10","丁未年十月十四"],["2027-11-11","丁未年十月十五"],
["2027-11-12","丁未年十月十六"],["2027-11-13","丁未年十月十七"],["2027-11-14","丁未年十月十八"],["2027-11-15","丁未年十月十九"],["2027-11-16","丁未年十月二十"],
["2027-11-17","丁未年十月廿一"],["2027-11-18","丁未年十月廿二"],["2027-11-19","丁未年十月廿三"],["2027-11-20","丁未年十月廿四"],["2027-11-21","丁未年十月廿五"],
["2027-11-22","丁未年十月廿六"],["2027-11-23","丁未年十月廿七"],["2027-11-24","丁未年十月廿八"],["2027-11-25","丁未年十月廿九"],["2027-11-26","丁未年十一月初一"],
["2027-11-27","丁未年十一月初二"],["2027-11-28","丁未年十一月初三"],["2027-11-29","丁未年十一月初四"],["2027-11-30","丁未年十一月初五"],["2027-12-01","丁未年十一月初六"],
["2027-12-02","丁未年十一月初七"],["2027-12-03","丁未年十一月初八"],["2027-12-04","丁未年十一月初九"],["2027-12-05","丁未年十一月初十"],["2027-12-06","丁未年十一月十一"],
["2027-12-07","丁未年十一月十二"],["2027-12-08","丁未年十一月十三"],["2027-12-09","丁未年十一月十四"],["2027-12-10","丁未年十一月十五"],["2027-12-11","丁未年十一月十六"],
["2027-12-12","丁未年十一月十七"],["2027-12-13","丁未年十一月十八"],["2027-12-14","丁未年十一月十九"],["2027-12-15","丁未年十一月二十"],["2027-12-16","丁未年十一月廿一"],
["2027-12-17","丁未年十一月廿二"],["2027-12-18","丁未年十一月廿三"],["2027-12-19","丁未年十一月廿四"],["2027-12-20","丁未年十一月廿五"],["2027-12-21","丁未年十一月廿六"],
["2027-12-22","丁未年十一月廿七"],["2027-12-23","丁未年十一月廿八"],["2027-12-24","丁未年十一月廿九"],["2027-12-25","丁未年腊月初一"],["2027-12-26","丁未年腊月初二"],
["2027-12-27","丁未年腊月初三"],["2027-12-28","丁未年腊月初四"],["2027-12-29","丁未年腊月初五"],["2027-12-30","丁未年腊月初六"],["2027-12-31","丁未年腊月初七"],
["2028-01-01","丁未年腊月初八"],["2028-01-02","丁未年腊月初九"],["2028-01-03","丁未年腊月初十"],["2028-01-04","丁未年腊月十一"],
["2028-01-05","丁未年腊月十二"],["2028-01-06","丁未年腊月十三"],["2028-01-07","丁未年腊月十四"],["2028-01-08","丁未年腊月十五"],["2028-01-09","丁未年腊月十六"],
["2028-01-10","丁未年腊月十七"],["2028-01-11","丁未年腊月十八"],["2028-01-12","丁未年腊月十九"],["2028-01-13","丁未年腊月二十"],["2028-01-14","丁未年腊月廿一"],
["2028-01-15","丁未年腊月廿二"],["2028-01-16","丁未年腊月廿三"],["2028-01-17","丁未年腊月廿四"],["2028-01-18","丁未年腊月廿五"],["2028-01-19","丁未年腊月廿六"],
["2028-01-20","丁未年腊月廿七"],["2028-01-21","丁未年腊月廿八"],["2028-01-22","丁未年腊月廿九"],
];
// 扩充节气至2027立春，覆盖2028-01-22区间
const solarTerm2026_2027 = [
    {n:"小寒",t:new Date("2026-01-05 16:22:53")},
    {n:"大寒",t:new Date("2026-01-20 09:44:39")},
    {n:"立春",t:new Date("2026-02-04 04:01:51")},
    {n:"雨水",t:new Date("2026-02-18 23:51:39")},
    {n:"惊蛰",t:new Date("2026-03-05 21:58:43")},
    {n:"春分",t:new Date("2026-03-20 22:45:42")},
    {n:"清明",t:new Date("2026-04-05 02:39:43")},
    {n:"谷雨",t:new Date("2026-04-20 09:38:51")},
    {n:"立夏",t:new Date("2026-05-05 19:48:27")},
    {n:"小满",t:new Date("2026-05-21 08:36:28")},
    {n:"芒种",t:new Date("2026-06-05 23:48:04")},
    {n:"夏至",t:new Date("2026-06-21 16:24:27")},
    {n:"小暑",t:new Date("2026-07-07 09:57:00")},
    {n:"大暑",t:new Date("2026-07-23 03:13:00")},
    {n:"立秋",t:new Date("2026-08-07 19:43:00")},
    {n:"处暑",t:new Date("2026-08-23 10:19:00")},
    {n:"白露",t:new Date("2026-09-07 22:41:00")},
    {n:"秋分",t:new Date("2026-09-23 08:05:00")},
    {n:"寒露",t:new Date("2026-10-08 14:29:00")},
    {n:"霜降",t:new Date("2026-10-23 17:38:00")},
    {n:"立冬",t:new Date("2026-11-07 17:52:00")},
    {n:"小雪",t:new Date("2026-11-22 15:23:00")},
    {n:"大雪",t:new Date("2026-12-07 10:53:00")},
    {n:"冬至",t:new Date("2026-12-22 04:50:00")},
    {n:"小寒",t:new Date("2027-01-05 22:09:16")},
    {n:"大寒",t:new Date("2027-01-20 15:29:32")},
    {n:"立春",t:new Date("2027-02-04 09:46:24")},
    {n:"雨水",t:new Date("2027-02-19 05:33:41")},
    {n:"惊蛰",t:new Date("2027-03-06 03:39:15")},
    {n:"春分",t:new Date("2027-03-21 04:24:19")},
    {n:"清明",t:new Date("2027-04-05 08:17:26")},
    {n:"谷雨",t:new Date("2027-04-20 15:27:48")},
    {n:"立夏",t:new Date("2027-05-06 01:25:37")},
    {n:"小满",t:new Date("2027-05-21 14:18:52")},
    {n:"芒种",t:new Date("2027-06-06 05:25:11")},
    {n:"夏至",t:new Date("2027-06-21 22:10:28")},
    {n:"小暑",t:new Date("2027-07-07 15:36:43")},
    {n:"大暑",t:new Date("2027-07-23 09:04:26")},
    {n:"立秋",t:new Date("2027-08-08 01:26:14")},
    {n:"处暑",t:new Date("2027-08-23 16:07:09")},
    {n:"白露",t:new Date("2027-09-08 04:27:33")},
    {n:"秋分",t:new Date("2027-09-23 14:51:22")},
    {n:"寒露",t:new Date("2027-10-08 21:15:47")},
    {n:"霜降",t:new Date("2027-10-23 23:32:18")},
    {n:"立冬",t:new Date("2027-11-07 23:38:05")},
    {n:"小雪",t:new Date("2027-11-22 21:16:34")},
    {n:"大雪",t:new Date("2027-12-07 16:37:50")},
    {n:"冬至",t:new Date("2027-12-22 10:42:21")}
];
const Zhi = ["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"];
const keArr = ["一刻","二刻","三刻","四刻","五刻","六刻","七刻","八刻"];
// 修复：本地日期字符串，不再用UTC ISO
function getLocalYmd(dateObj){
    const y = dateObj.getFullYear();
    const m = String(dateObj.getMonth()+1).padStart(2,'0');
    const d = String(dateObj.getDate()).padStart(2,'0');
    return `${y}-${m}-${d}`;
}
function getLunarByDate(dateObj){
    const dStr = getLocalYmd(dateObj);
    const match = solar2Lunar2026_2027.find(item=>item[0]===dStr);
    return match ? match[1] : "日期超出2026.01.01~2027.02.05范围";
}
function getCurrentJieQi(now){
    let lastItem = solarTerm2026_2027[0];
    for(let item of solarTerm2026_2027){
        // 容错无效日期
        if(isNaN(item.t.getTime())) continue;
        if(now >= item.t) lastItem = item;
    }
    const msDiff = now - lastItem.t;
    const dayNum = Math.floor(msDiff / 86400000) + 1;
    return {name:lastItem.n, day:dayNum};
}
function getHourZhi(hour){
    if(hour>=23||hour<1) return "子";
    if(hour>=1&&hour<3) return "丑";
    if(hour>=3&&hour<5) return "寅";
    if(hour>=5&&hour<7) return "卯";
    if(hour>=7&&hour<9) return "辰";
    if(hour>=9&&hour<11) return "巳";
    if(hour>=11&&hour<13) return "午";
    if(hour>=13&&hour<15) return "未";
    if(hour>=15&&hour<17) return "申";
    if(hour>=17&&hour<19) return "酉";
    if(hour>=19&&hour<21) return "戌";
    return "亥";
}
function getKeName(min){
    const idx = Math.floor(min / 15);
    return keArr[idx];
}
function pad2(num){
    return String(num).padStart(2,'0');
}
function numToCn(n){
    const arr = ["零","一","二","三","四","五","六","七","八","九","十","十一","十二","十三","十四","十五","十六","十七","十八","十九","二十","廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","三十"];
    return arr[n]||n;
}
const $ = s=>document.getElementById(s);
const domNowTime = $("nowTime");
const domLunarTime = $("lunarTime");
const domJieqi = $("jieqiText");
const domAuthor = $("authorBox");
const domInput = $("ganzhiInput");
const domBtn = $("queryBtn");
const domResult = $("resultBox");
const toastTip = $("toastTip");
// 固定复制文本
const COPY_TARGET_TEXT = "六甲雨晴占";
// 弹窗提示函数：显示5秒，最后3秒渐隐
function showToast(msg){
    toastTip.innerText = msg;
    toastTip.classList.add("show");
    // 5秒后关闭
    setTimeout(()=>{
        toastTip.classList.remove("show");
    }, 5000);
}
async function copyText() {
    try {
        await navigator.clipboard.writeText(COPY_TARGET_TEXT);
    } catch (err) {
        const temp = document.createElement('textarea');
        temp.value = COPY_TARGET_TEXT;
        document.body.appendChild(temp);
        temp.select();
        document.execCommand('copy');
        document.body.removeChild(temp);
    }
    // 复制完成弹出提示：群聊   1067025106
    showToast("群聊1067025106");
}
let authorFlag = false;
// 标记是否已切换过文字（首次点击仅切换文字，不触发复制逻辑）
let hasClickAuthor = false;
const authorText2 = "长按复制口令";
domAuthor.onclick = ()=>{
    // 首次点击仅切换文字，不执行复制
    if(!hasClickAuthor){
        hasClickAuthor = true;
        authorFlag = true;
        domAuthor.innerText = authorText2;
        return;
    }
    // 非首次点击正常切换文字
    authorFlag = !authorFlag;
    domAuthor.innerText = authorFlag ? authorText2 : authorText1;
};
// 长按复制
let longPressTimer = null;
const LONG_PRESS_TIME = 600;
domAuthor.addEventListener('touchstart', () => {
    longPressTimer = setTimeout(copyText, LONG_PRESS_TIME);
});
domAuthor.addEventListener('touchend', () => clearTimeout(longPressTimer));
domAuthor.addEventListener('touchcancel', () => clearTimeout(longPressTimer));
let mouseDownTimer = null;
domAuthor.addEventListener('mousedown', () => {
    mouseDownTimer = setTimeout(copyText, LONG_PRESS_TIME);
});
domAuthor.addEventListener('mouseup', () => clearTimeout(mouseDownTimer));
domAuthor.addEventListener('mouseleave', () => clearTimeout(mouseDownTimer));
// 修复：每秒强制刷新农历+时辰+节气，覆盖2027-02-05区间
function refreshTime(){
    const now = new Date();
    const y = now.getFullYear();
    const m = String(now.getMonth()+1).padStart(2,'0');
    const d = String(now.getDate()).padStart(2,'0');
    const h = String(now.getHours()).padStart(2,'0');
    const min = String(now.getMinutes()).padStart(2,'0');
    const sec = String(now.getSeconds()).padStart(2,'0');
    domNowTime.innerText = `${y}年${m}月${d}日 ${h}:${min}:${sec}`;
    // 每次刷新都重算农历、时辰、节气
    const lunarStr = getLunarByDate(now);
    const shiChen = getHourZhi(now.getHours());
    const ke = getKeName(now.getMinutes());
    domLunarTime.innerText = `${lunarStr}${shiChen}时${ke}`;
    const jq = getCurrentJieQi(now);
    domJieqi.innerText = `${jq.name}第${numToCn(jq.day)}天`;
}
// 雨晴推演库完全不变
const tianGan = ["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"];
const diZhi = ["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"];
const ganZhiList = [];
for(let g=0;g<10;g++) ganZhiList.push(...diZhi.map(d=>tianGan[g]+d));
const yuQingDict = {
    "甲子":{text:"二日止",delay:2},
    "甲寅":{text:"即止",delay:0},
    "甲辰":{text:"即止",delay:0},
    "甲午":{text:"即时止",delay:0},
    "甲申":{text:"即止",delay:0},
    "甲戌":{text:"即时止",delay:0},
    "乙丑":{text:"二日止",delay:2},
    "乙卯":{text:"一日止",delay:1},
    "乙巳":{text:"一日止",delay:1},
    "乙未":{text:"二日止",delay:2},
    "乙酉":{text:"一日止",delay:1},
    "乙亥":{text:"即日止",delay:0},
    "丙子":{text:"夕止",delay:0},
    "丙寅":{text:"即日止",delay:0},
    "丙辰":{text:"一日止",delay:1},
    "丙午":{text:"即止",delay:0},
    "丙申":{text:"夕止",delay:0},
    "丙戌":{text:"夕止",delay:0},
    "丁丑":{text:"夕止",delay:0},
    "丁卯":{text:"夕止",delay:0},
    "丁巳":{text:"即时止",delay:0},
    "丁未":{text:"即止",delay:0},
    "丁酉":{text:"一日止",delay:1},
    "丁亥":{text:"即时止",delay:0},
    "戊子":{text:"二日止",delay:2},
    "戊寅":{text:"即止",delay:0},
    "戊辰":{text:"夜半止",delay:0},
    "戊午":{text:"即止",delay:0},
    "戊申":{text:"二日止",delay:2},
    "戊戌":{text:"一日止",delay:1},
    "己丑":{text:"三日止",delay:3},
    "己卯":{text:"立止",delay:0},
    "己巳":{text:"立止",delay:0},
    "己未":{text:"即止",delay:0},
    "己酉":{text:"二日止",delay:2},
    "己亥":{text:"即止",delay:0},
    "庚子":{text:"四日止",delay:4},
    "庚寅":{text:"即时止",delay:0},
    "庚辰":{text:"即止",delay:0},
    "庚午":{text:"一日止",delay:1},
    "庚申":{text:"四日止",delay:4},
    "庚戌":{text:"即止",delay:0},
    "辛丑":{text:"二日止",delay:2},
    "辛巳":{text:"二日止",delay:2},
    "辛未":{text:"七日止",delay:7},
    "辛酉":{text:"即时止",delay:0},
    "辛亥":{text:"二日止",delay:2},
    "壬子":{text:"一日止",delay:1},
    "壬寅":{text:"即止",delay:0},
    "壬辰":{text:"八日止",delay:8},
    "壬午":{text:"即日止",delay:0},
    "壬申":{text:"即止",delay:0},
    "壬戌":{text:"即止",delay:0},
    "癸丑":{text:"即时止",delay:0},
    "癸卯":{text:"即时止",delay:0},
    "癸巳":{text:"夕止",delay:0},
    "癸未":{text:"一日止",delay:1},
    "癸酉":{text:"二日止",delay:2},
    "癸亥":{text:"即止",delay:0}
};
const diZhiYuQing = {
    "子": "立止，不止第三天止。",
    "丑": "第二日止，不止第三天止。",
    "寅": "即止，不止第二日止。",
    "卯": "即止，不止第三天止。",
    "辰": "第二日止。",
    "巳": "第三天止，不止第四天止。",
    "午": "立止，不止至十日阴。",
    "未": "第二日止，不止第四天止。",
    "申": "夕止见日，不见日久阴。",
    "酉": "立止，不止久阴。",
    "戌": "立止，不止久阴。",
    "亥": "立止，不止久阴。"
};
const validDiZhi = ["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"];
let btnLock = false;
function runQuery(){
    if(btnLock) return;
    const val = domInput.value.trim();
    btnLock = true;
    let res;
    if(yuQingDict.hasOwnProperty(val)){
        res = yuQingDict[val].text;
    }else if(validDiZhi.includes(val)){
        res = diZhiYuQing[val];
    }else{
        res = "输入无效！请输入完整干支（甲子/丙寅）或单字地支（子/丑）";
    }
    domResult.innerText = res;
    setTimeout(()=>btnLock=false,600);
}
domBtn.onclick = runQuery;
domInput.addEventListener("keydown",e=>{
    if(e.key === "Enter") runQuery();
});
// 页面加载立刻执行一次渲染
refreshTime();
setInterval(refreshTime,1000);
// 离线缓存
if("serviceWorker" in navigator){
    window.addEventListener("load",()=>{
        const swCode = `
            const CACHE_NAME = "yuqing-v1";
            const CACHE_FILES = ["index.html"];
            self.addEventListener("install",e=>{
                e.waitUntil(caches.open(CACHE_NAME).then(c=>c.addAll(CACHE_FILES)).then(()=>self.skipWaiting()));
            });
            self.addEventListener("activate",e=>{
                e.waitUntil(caches.keys().then(keys=>Promise.all(keys.filter(k=>k!==CACHE_NAME).map(k=>caches.delete(k)))).then(()=>self.clients.claim()));
            });
            self.addEventListener("fetch",e=>{
                e.respondWith(caches.match(e.request).then(r=>r||fetch(e.request)));
            });
        `;
        const blob = new Blob([swCode],{type:"application/javascript"});
        const swUrl = URL.createObjectURL(blob);
        navigator.serviceWorker.register(swUrl).catch(()=>{});
    });
}
</script>
</body>
</html>
